Ich muss diese for-Schleife in ein Listenverständnis umwandeln. Diese for-Schleife iteriert durch einen Datenrahmen jede Zeile zu finden, wo der Eintrag für Spalte 'TL'
enthält „J“ und Spalte 'Ink' = 0
und löschen Sie die ganze Zeile:Wie konvertiert man diese Python for-Schleife in ein Listenverständnis?
for r in df.T:
if 'J' in df.loc[r,'TL'] and df.loc[r,'Ink'] == 0:
df.drop(r)
else:
continue
ich diese
df_clean = [
df.drop(r) for r in df.T if 'J' in df.loc[r,'TL'] and df.loc[r,'Ink'] == 0
]
versucht haben, ich erhalte eine Fehlermeldung,
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Haben Sie etwas versucht? Geben Sie es eine Chance, wenn Sie nicht haben, dann kommen Sie zurück, wenn Sie Hilfe brauchen. Wenn Sie haben, zeigen Sie uns. – jacoblaw
Sind Sie wirklich sicher, dass Sie ein Listenverständnis haben möchten? Selbst wenn Sie davon ausgehen, dass es funktioniert, sieht es so aus, als würden Sie mit einer Liste von DataFrame-Objekten enden, eines für jedes "r" in "df.T". Was stimmt überhaupt nicht mit einer 'for'-Schleife? –
Ich möchte ein Listenverständnis verwenden, weil die Datensätze, mit denen ich arbeite, riesig sind und eine 'for'-Schleife ewig dauern würde. –