Les Pandas de découpage FutureWarning avec 0.21.0
Je suis en train de sélectionner un sous-ensemble d'un sous-ensemble d'un dataframe, en ne sélectionnant que quelques colonnes, et le filtrage sur les lignes.
df.loc[df.a.isin(['Apple', 'Pear', 'Mango']), ['a', 'b', 'f', 'g']]
Cependant, j'obtiens le message d'erreur:
Passing list-likes to .loc or [] with any missing label will raise
KeyError in the future, you can use .reindex() as an alternative.
Quel est le couper et le filtre maintenant?
- Ce n'est pas une erreur, c'est un avertissement. Mais ce qu'il vous dit, c'est que l'un de vos étiquettes, il est probable que vos étiquettes de colonne, n'est pas contenue dans les données-cadre. Le comportement actuel sera échouer en silence et le retour d'une colonne avec
NaN
s. Dans l'avenir, il provoquera une erreur à la place. - Merci, j'ai mal compris ce que signifiait l'index - et comment ré-indexation est pertinent. Oui j'ai juste fait une faute de frappe dans l'un de mes étiquettes.
- Ouais, je suis d'accord que le bit sur
.reindex()
est source de confusion. EDIT bien qu'il fait sens quand vous lisez ceci
Vous devez vous connecter pour publier un commentaire.
C'est une modification introduite en
v0.21.1
, et il a été expliqué dans la docs à la longueur -Par exemple,
Essayer une sorte de découpage que vous êtes en train de faire -
Pas de problème. Maintenant, essayez de remplacer
C
avec un inexistante étiquette de colonne -Donc, dans votre cas, l'erreur est parce que des étiquettes de colonne que vous passez à
loc
. Prendre un autre regard sur eux.Cette erreur se produit également avec
.append
appel lorsque la liste contient de nouvelles colonnes. Pour éviter ceUtilisation:
Au lieu de,
Message d'erreur complet:
Grâce à https://stackoverflow.com/a/50230080/207661
Désolé, je ne suis pas sûr que j'ai bien compris vous, mais il semble que la prochaine pourrait être acceptable pour vous:
df[df['a'].isin(['Apple', 'Pear', 'Mango'])][['a', 'b', 'f', 'g']]
Extrait description: