Ich lade ein Pandas Dataframe, das viele Datentypen (geladen aus Excel) hat. Zwei bestimmte Spalten sollten Floats sein, aber gelegentlich gab ein Forscher einen zufälligen Kommentar wie "nicht gemessen" ein. Ich muss alle Zeilen löschen, in denen Werte in einer der beiden Spalten keine Zahl sind, und nicht numerische Daten in anderen Spalten beibehalten. Ein einfaches Anwendungsfall sieht wie folgt aus (die reale Tabelle mehrere tausend Zeilen hat ...)Verwenden von Pandas Filtern von nicht-numerischen Daten aus zwei Spalten eines Dataframe
import pandas as pd
df = pd.DataFrame(dict(A = pd.Series([1,2,3,4,5]), B = pd.Series([96,33,45,'',8]), C = pd.Series([12,'Not measured',15,66,42]), D = pd.Series(['apples', 'oranges', 'peaches', 'plums', 'pears'])))
, die in dieser Datentabelle ergibt:
A B C D
0 1 96 12 apples
1 2 33 Not measured oranges
2 3 45 15 peaches
3 4 66 plums
4 5 8 42 pears
ich nicht klar bin, wie diese erhalten Tabelle:
Ich versuchte dropna, aber die Typen sind "Objekt", da es nicht numerische Einträge gibt. Ich kann die Werte nicht in Floats konvertieren, ohne entweder die gesamte Tabelle zu konvertieren oder eine Serie gleichzeitig auszuführen, die die Beziehung zu den anderen Daten in der Zeile verliert. Vielleicht gibt es etwas Einfaches, das ich nicht verstehe?
Danke! Ich mag die erste Lösung mit Anwendung, Notnull, für Wartbarkeit. Es scheint zu funktionieren! Ich werde es einen Tag geben und sehen, ob irgendwelche Probleme auftauchen, oder wenn jemand mit einer noch einfacheren Lösung antwortet. – ZSG