Je suis en quelque sorte coincé sur l'extraction de la valeur d'une variable conditionnée sur une autre variable. Par exemple, le dataframe 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 obtenu un objet, pas une chaîne.
item()
à la fin.df.query
etpd.eval
semblent bien adaptés à ce cas d'utilisation. Pour plus d'informations sur lapd.eval()
famille de fonctions, leurs fonctionnalités et leurs cas d'utilisation, veuillez visiter Évaluation des expressions dynamiques dans les pandas à l'aide de pd.eval () .Réponses:
Vous pouvez utiliser
loc
pour obtenir des séries qui satisfont votre condition, puisiloc
pour obtenir le premier élément:la source
df.loc[df['B'] == 3, 'A'].item()
fonctionne pour moi aussi.Vous pouvez essayer
query
, ce qui est moins tapant:la source
df[df['B']==3]['A']
, en supposant que df est votre pandas.DataFrame.la source
][
partie.Utilisez
df[df['B']==3]['A'].values
si vous voulez juste l'élément lui-même sans les crochetsla source
][
partie.[0]
à la fin pour accéder à la valeur.J'ai également travaillé sur ces opérations de clôture et d'extraction pour ma mission.
la source