2017-08-23 2 views
1

Ich habe den Datenrahmen unter:Pandas Wo Methode: Wie abfragen, ob ein Wert in einer Liste, die ein Wert ist

  a 
0 [1, 2, 3] 
1 [5, 6, 7] 

Ich versuche, um die Zeilen zu finden, wo 1 durch den Wert der Spalte enthalten ist b (eine Liste). Also für die obige Tabelle die Abfrage zurückkehren würde:

  a 
0 [1, 2, 3] 

Ich habe versucht:

> df.where(1 in df.a) 
ValueError: where requires an ndarray like object for its condition 

und:

> df.query('1 in a') 
KeyError: True 

Könnte jemand bitte lassen Sie mich wissen, ob es einen Weg gibt, dies zu tun mit den Wo oder Frage-Methoden?

Dank

Antwort

1

Es kann bessere Möglichkeiten, aber eine einfache Methode ist die Liste mit apply und einer lambda Funktion zuzugreifen:

df[df.a.apply(lambda seq: 1 in seq)] 
+0

Danke, aber ich brauche eine Möglichkeit, dies zu tun, während entweder über die wo oder Frage Methoden von Pandas. – Alanstapedeck

+0

Bsp .: df.query ('b = 1 & 1 in a') – Alanstapedeck

Verwandte Themen