Pandas: Holen Sie sich entsprechende Spalte Wert in der Zeile basierend auf eindeutigen Wert
Ich habe herausgefunden, wie man die Informationen, die ich will, aber ich wäre überrascht, wenn es nicht eine besser lesbare Möglichkeit, dies zu tun.
Ich möchte den Wert in einer anderen Spalte in der Zeile mit den Daten, die ein element I geben. Zum Beispiel, was ist der Wert in "b", das entspricht dem Wert von 10 'eine'.
>>> df
a b c
0 10 20 30
1 11 21 31
2 12 22 32
>>> df['b'][df[df['a'] == 11].index.tolist()].tolist()
[21]
Dies ist, wie ich es momentan gelöst, aber in der Praxis meine dataframes werden nicht benannt, so prägnant und ich habe lange Zeichenfolgen als Spalten-Namen, so dass die Leine wird schwer zu Lesen.
EDIT: Wenn der Wert in 'a' nicht eindeutig ist, gibt es auch einen Weg, um alle entsprechenden Werte in 'b'?
- Du meinst
df.loc[df['a'] == 11,'b']
? - Mach ich, danke! @EdChum wird dieser auch zurück, so werden alle entsprechenden Werte in 'b' wenn der Wert in 'a' ist nicht einzigartig?
- Ja............
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einen boolean-Maske mit
loc
zur Rückgabe aller Zeilen, in denen die Boolesche Bedingung erfüllt ist, hier werden wir die Maske der df mit der Bedingung where 'a' == 11, und wo diese erfüllt ist, kehren alle Werte für 'b':