Ich bin irgendwie festgefahren, den Wert einer Variablen zu extrahieren, die auf eine andere Variable konditioniert. Zum Beispiel der folgende Datenrahmen:
A B
p1 1
p1 2
p3 3
p2 4
Wie kann ich den Wert von A
erhalten, wenn B=3
? Jedes Mal, wenn ich den Wert von A
extrahierte, erhielt ich ein Objekt, keine Zeichenfolge.
Sie könnten loc
verwenden, um Reihen zu erhalten, die Ihre Bedingung erfüllen, und dann iloc
, um das erste Element zu erhalten:
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'
df[df['B']==3]['A']
, vorausgesetzt df ist dein pandas.DataFrame.
Sie können query
ausprobieren, was weniger Eingabe ist:
df.query('B==3')['A']
Verwenden df[df['B']==3]['A'].values
wenn Sie nur den Artikel selbst ohne die Klammern wollen