Pandas est une bibliothèque très utile, mais lorsque la version change, ce qui fonctionnait auparavant peut ne pas fonctionner. Cette fois, je donnerai deux points comme cas où 0,24 ⇒ 1,0.
Tout d'abord, à 0,24. Créons un bloc de données composé de colonnes «a» et «b» et spécifions les colonnes avec ix.
0.24
>>>a = pd.DataFrame([[1,2],[3,4]], index=[1,2], columns=['a', 'b'])
>>> a.ix[:, ['a','b']]
a b
1 1 2
2 3 4
Peut être utilisé normalement. Puis à 1.0.
1.0
>>> a.ix[:, ['a','b']]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\ProgramData\Anaconda3\envs\padnas1\lib\site-packages\pandas\core\generic.py", l
ine 5273, in __getattr__
return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'ix'
Vous ne pouvez pas l'utiliser. Mais ne vous précipitez pas. Vous pouvez utiliser loc au lieu de ix.
Maintenant, spécifions simplement la colonne inexistante «c». Pour 0,24.
0.24
>>> a.loc[:, ['a','c']]
a c
1 1 NaN
2 3 NaN
Il semble créer automatiquement une colonne et la remplir avec "NaN". Êtes-vous trop intelligent?
Suivant dans 1.0.
1.0
>>> a.loc[:, ['a','c']]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\ProgramData\Anaconda3\envs\padnas1\lib\site-packages\pandas\core\indexing.py",
line 1760, in __getitem__
return self._getitem_tuple(key)
File "C:\ProgramData\Anaconda3\envs\padnas1\lib\site-packages\pandas\core\indexing.py",
line 1287, in _getitem_tuple
retval = getattr(retval, self.name)._getitem_axis(key, axis=i)
File "C:\ProgramData\Anaconda3\envs\padnas1\lib\site-packages\pandas\core\indexing.py",
line 1952, in _getitem_axis
return self._getitem_iterable(key, axis=axis)
File "C:\ProgramData\Anaconda3\envs\padnas1\lib\site-packages\pandas\core\indexing.py",
line 1593, in _getitem_iterable
keyarr, indexer = self._get_listlike_indexer(key, axis, raise_missing=False)
File "C:\ProgramData\Anaconda3\envs\padnas1\lib\site-packages\pandas\core\indexing.py",
line 1550, in _get_listlike_indexer
self._validate_read_indexer(
File "C:\ProgramData\Anaconda3\envs\padnas1\lib\site-packages\pandas\core\indexing.py",
line 1652, in _validate_read_indexer
raise KeyError(
KeyError: 'Passing list-likes to .loc or [] with any missing labels is no longer supported
, see https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-
reindex-listlike'
Une erreur clé s'est produite. Cela peut être strict avec cela. En guise de réponse, il semble préférable de vérifier à l'avance si la clé existe dans la colonne.
Cette fois, j'ai présenté deux exemples qui ont été trouvés, mais il semble que le comportement a changé dans de nombreux autres détails, il est donc préférable de vérifier les changements de manière exhaustive par ce qui suit. https://pandas.pydata.org/docs/whatsnew/v1.0.0.html
Recommended Posts