web-dev-qa-db-fra.com

extraire la valeur de la colonne en fonction d'une autre colonne pandas dataframe

Je suis un peu coincé dans l'extraction de la valeur d'une variable conditionnant une autre variable. Par exemple, le cadre de données suivant:

A  B
p1 1
p1 2
p3 3
p2 4

Comment puis-je obtenir la valeur de A quand B=3? Chaque fois que j'ai extrait la valeur de A, j'ai un objet, pas une chaîne.

72
Anderson Zhu

Vous pouvez utiliser loc pour obtenir des séries satisfaisant votre condition, puis iloc pour obtenir le premier élément:

In [2]: df
Out[2]:
    A  B
0  p1  1
1  p1  2
2  p3  3
3  p2  4

In [3]: df.loc[df['B'] == 3, 'A']
Out[3]:
2    p3
Name: A, dtype: object

In [4]: df.loc[df['B'] == 3, 'A'].iloc[0]
Out[4]: 'p3'
117
Anton Protopopov

df[df['B']==3]['A'], en supposant que df est votre pandas.DataFrame.

24
emited

Vous pouvez essayer query, ce qui signifie moins de frappe:

df.query('B==3')['A']
21
PhilChang

Utilisez df[df['B']==3]['A'].values si vous voulez juste un article sans les crochets.

2
Baz