Ich stecke beim Extrahieren des Werts einer Variablenkonditionierung für eine andere Variable fest. Zum Beispiel der folgende Datenrahmen:
A B
p1 1
p1 2
p3 3
p2 4
Wie kann ich den Wert von A
wann ermitteln B=3
? Jedes Mal, wenn ich den Wert von extrahierte A
, bekam ich ein Objekt, keine Zeichenfolge.
item()
am Ende hinzufügen .df.query
undpd.eval
scheinen gut für diesen Anwendungsfall zu passen. Informationen zurpd.eval()
Funktionsfamilie, ihren Funktionen und Anwendungsfällen finden Sie unter Auswertung dynamischer Ausdrücke in Pandas mit pd.eval () .Antworten:
Sie könnten verwenden
loc
, um Serien zu erhalten, die Ihren Zustand erfüllen, und danniloc
das erste Element zu erhalten:quelle
df.loc[df['B'] == 3, 'A'].item()
funktioniert auch bei mir.Sie können versuchen
query
, was weniger tippt:quelle
df[df['B']==3]['A']
Angenommen, df ist Ihr pandas.DataFrame.quelle
][
Teil.Verwenden
df[df['B']==3]['A'].values
Sie diese Option, wenn Sie nur das Element selbst ohne die Klammern möchtenquelle
][
Teil.[0]
am Ende setzen, um auf den Wert zuzugreifen.Ich habe auch an diesen Klausel- und Extraktionsoperationen für meinen Auftrag gearbeitet.
quelle