Normalerweise man filtert ein Pandas Datenrahmen wie folgt:Fehlerfilterlisten in Pandas Datenrahmen
import pandas as pd
df = pd.read_csv(...)
df_filtered = df[df['column'] == value]
Ich habe folgende Datenrahmen df1
:
numbers letters other_columns
0 [A] ....
1 [A] ....
2 [C] ....
3 [B] ....
4 [B] ....
5 [A] ....
... ....
Ich dachte, dass die Einträge in letters
Saiten waren, aber das sind eigentlich Listen:
type(df1.letters.ix[0])
Ausgänge list
Also habe ich versucht, den Datenrahmen df1
zu filtern, nur [A]
Reihen zu haben.
Das only_A
aussehen soll ist: Jedoch
numbers letters other_columns
0 [A] ....
1 [A] ....
5 [A] ....
... ....
, wenn ich mit dem Code zu filtern versuchen
only_A = df1[df1['letters'] == list('A')]
ich einen Fehler, ein ValueError
ValueError: Arrays were different lengths: 3076 vs 1
Was ist der richtige Weg, um diesen Datenrahmen zu filtern?
Welchen Fehler bekommen Sie? –
Wenn Sie dachten, dass der Inhalt von Buchstaben Strings wären, könnten Sie die Spalte von Listen in Strings konvertieren? etwas wie das: df ['letters'] = df ['letters']. apply (lambda x: '' .join (x)) Dann fahre fort zu filtern wie du es normalerweise tun würdest. – flyingmeatball
Benötigen Sie Listen für diese Serie? Wenn nicht, könnten Sie die Buchstaben auspacken und dann einen normalen Filter auf den fraglichen Brief machen. – rshield