Ich habe einen Pandas-Datenrahmen. Eine meiner Spalten sollte nur Floats sein. Wenn ich versuche, diese Spalte in Gleitkommazahlen zu konvertieren, werde ich darauf hingewiesen, dass sich dort Zeichenfolgen befinden. Ich möchte alle Zeilen löschen, in denen Werte in dieser Spalte Zeichenfolgen sind ...Zeilen entfernen, in denen Spaltenwerttyp Zeichenfolge ist Pandas
6
A
Antwort
10
Verwenden convert_objects
mit param convert_numeric=True
diese alle nicht numerische Werte NaN
coerce werden:
In [24]:
df = pd.DataFrame({'a': [0.1,0.5,'jasdh', 9.0]})
df
Out[24]:
a
0 0.1
1 0.5
2 jasdh
3 9
In [27]:
df.convert_objects(convert_numeric=True)
Out[27]:
a
0 0.1
1 0.5
2 NaN
3 9.0
In [29]:
Sie können sie dann fallen:
df.convert_objects(convert_numeric=True).dropna()
Out[29]:
a
0 0.1
1 0.5
3 9.0
UPDATE
Seit Version 0.17.0
diese Methode ist jetzt deprecated und Sie brauchen t o verwenden to_numeric
leider auf einem Series
arbeitet eher als eine ganze df so der entsprechende Code ist jetzt:
df.apply(lambda x: pd.to_numeric(x, errors='coerce')).dropna()
0
Sie können den Datentyp einer Spalte aus dem Attribut dtype.kind
finden. So etwas wie df[col].dtype.kind
. Weitere Informationen finden Sie unter the numpy docs. Transponiere den Datenrahmen von Indizes zu Spalten.
Verwandte Themen
- 1. aktualisieren Zeilenwerte in denen bestimmte Bedingung in Pandas erfüllt ist
- 2. Entfernen Sie bestimmte Zeilen in der Zeichenfolge?
- 3. Löschen von Zeilen aus Pandas Datareframe entfernen
- 4. Auswählen nur Zeilen, in denen ein Datum als eine andere weniger ist mit Pandas Dataframe
- 5. Auswählen von Zeilen aus Pandas-Reihen, in denen Zeilen Arrays sind
- 6. Programatically Einfügen von Zeilen, in denen Feldwert SQL-Anweisung ist
- 7. Wählen Sie Zeilen, in denen id in mehreren Bereichen ist
- 8. Entfernen Sie Zeilen, die bestimmte Zeichenfolge enthalten
- 9. Entfernen bestimmter Zeilen in Pandas Dataframe nach Zeichenfolgenformat
- 10. MySQL wählen Sie Zeilen, in denen LEFT JOIN ist null
- 11. Entfernen bestimmter Zeilen von DataFrame in Python Pandas
- 12. Entfernen von Zeichen aus einer Zeichenfolge in Pandas
- 13. Pandas - Entfernen von doppelten Zeilen basierend auf den Spalten
- 14. Reihenfolge der Zeilen, nach denen die Bedingung erfüllt ist?
- 15. Doppelte Zeilen in Pandas DF
- 16. Summe der Zeilen, in denen eine andere Spalte eine Zeichenfolge in Google Tabellen hat
- 17. Entfernen Sie eine von zwei Zeilen, in denen erste Spalte mit unterschiedlichen Datum identisch und zweiten
- 18. Pandas: Summe alle Zeilen
- 19. Gruppierung Zeilen Python Pandas
- 20. Wie Dezimalstellen in Pandas entfernen
- 21. Entfernen der Indexspalte in Pandas
- 22. So wählen Sie Zeilen aus, in denen Spalte eine Zeichenfolge enthielt
- 23. Entfernen Sie alle Zeilen mit bestimmten Werten aus einer Zeichenfolge.
- 24. php mysql Update Zeilen, in denen sku nicht in Array
- 25. Schaltjahr aus Pandas Datenrahmen entfernen
- 26. Pandas Datenrahmen Spaltenname: Sonderzeichen entfernen
- 27. Auswählen von Zeilen, in denen ein Feld null ist, mit vorbereiteten PHP-PDO-Anweisungen und MySQL
- 28. mysql aktualisieren. Anzahl, Zeilen, in denen Spalte null ist und eine Spalte gleich ist
- 29. Überprüfen, ob die Zeichenfolge in einem Pandas-Datenframe ist
- 30. Bedingtes Entfernen von Duplikaten pandas python
Dank dafür! Mein Datenrahmen hat mehrere Spalten. Einige Spalten müssen Zeichenfolgen haben. Zum Beispiel habe ich eine Spalte "Name" und eine Spalte "Alter". Die Spalte 'Alter' muss numerisch sein. Ich habe versucht: df.age.convert_objects (convert_numeric = True) und bekam 'Series' Objekt hat kein Attribut 'convert_objects'. – user3347713
Sie müssen 'df [['age']]. Convert_objects (convert_numeric = True)' in diesem Fall – EdChum
Oh, ich sehe, so [['age']] wählt eine Spalte in df. Sehr hilfreich. Ich bekomme jedoch einen TypeError: convert_objects() hat ein unerwartetes Schlüsselwort argument 'convert_numeric'. Ich habe gerade die Dokumentation überprüft und "convert_numeric = True" ist das richtige Argument. Gedanken? – user3347713