Forum: PC-Programmierung auf Leer zelle testen


von ajo (Gast)


Lesenswert?

Hallo,

ich habe ein kleines Problem mit Phyton/Pandas

Ich lese csv Dateien ein sortiere diese, filter diese und gebe sie 
wieder aus.

Abfragen wie diese funktionieren.
df[(df.Col1 == 'Stückzahl') & (df.Col2 == 'WasAuchImmer')]

Ich habe jedoch auch ganz leer Felder in den csv Dateien. Davon möchte 
ich einige finden (und löschen)
Warum geht...

df[(df.Col1 == 'Stückzahl') & (df.Col2 == '')]

nicht? Das Ergebniss ist immer Null obwohl solche Zeilen vorhanden sind.

Mit dem Beispielcode, bei dem ich explizit '' eingegeben habe, 
funktioniert es. Deswegen muss es an der Tabelle die ich einlese liegen. 
Wie finde ich herraus was in einer leern Zelle bei mir wirklich steht, 
bzw. wie kann ich auf leer testen?
1
d = {'col1': ['Test1', 'Test2', 'Test1', 'Test1', '', 'Test1'], 'col2': ['Test1','Test4','Test1','Test1','Test3','Test1']}
2
df = pd.DataFrame(data=d)
3
print(df)
4
# das hier geht
5
 df[(df.col1 == 'Test1') & (df.col2 == 'Test1')]
6
# das hier geht im Beispiel, mit den eingelesen Daten jedoch nicht
7
df[(df.col1 == '') & (df.col2 == 'Test3')]

Vielen Dank

von ajo (Gast)


Lesenswert?

ich glaube so geht es:

df[(df.col1== 'lalala') & (pd.isnull(df['col2']))]

von Einer (Gast)


Lesenswert?

versuch mal

df[(df.Col1 == 'Stückzahl') & (df.Col2+'egal' == 'egal')]

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.