Wie Sie eine DataFrame-Spalte, die Zeichenfolgen und NaN
-Werte enthält, in Floats konvertieren. Und es gibt eine andere Spalte, deren Werte Strings und Floats sind; wie man diese ganze Spalte in Floats umwandelt.Umwandeln von Zeichenfolgen in Gleitkommazahlen in einem Datenrahmen
Antwort
Sie können versuchen df.column_name = df.column_name.astype(float)
. Wie für die NaN
Werte müssen Sie angeben, wie sie konvertiert werden sollen, aber Sie können die .fillna
Methode dazu verwenden.
Beispiel:
In [12]: df
Out[12]:
a b
0 0.1 0.2
1 NaN 0.3
2 0.4 0.5
In [13]: df.a.values
Out[13]: array(['0.1', nan, '0.4'], dtype=object)
In [14]: df.a = df.a.astype(float).fillna(0.0)
In [15]: df
Out[15]:
a b
0 0.1 0.2
1 0.0 0.3
2 0.4 0.5
In [16]: df.a.values
Out[16]: array([ 0.1, 0. , 0.4])
Dies ist in 0.11 verfügbar. Forces conversion (oder set's to nan) Dies funktioniert auch, wenn astype
fehlschlägt; seine auch Serie von Serie so wird es keine vollständige String-Spalte
In [10]: df = DataFrame(dict(A = Series(['1.0','1']), B = Series(['1.0','foo'])))
In [11]: df
Out[11]:
A B
0 1.0 1.0
1 1 foo
In [12]: df.dtypes
Out[12]:
A object
B object
dtype: object
In [13]: df.convert_objects(convert_numeric=True)
Out[13]:
A B
0 1 1
1 1 NaN
In [14]: df.convert_objects(convert_numeric=True).dtypes
Out[14]:
A float64
B float64
dtype: object
Bitte beachten Sie, dass dies nicht für Spalten (am führenden Multiindex) funktioniert, funktioniert nur für Werte im Datenrahmen – denfromufa
Ich musste set_levels verwenden, um Zeichenfolge in float – denfromufa
zu konvertieren, dann machst du etwas falsch . das Konvertieren von String in Float ist eine explizite Benutzeraktion. – Jeff
df['MyColumnName'] = df['MyColumnName'].astype('float64')
Dies funktioniert nicht beim Konvertieren von einem String in einen Float: 'ValueError: konnte String nicht in float: 'Datum konvertieren '' – Jack
In einer neueren Version von Pandas (0,17 und höher) sagen konvertieren, Sie to_numeric Funktion nutzen zu können. Es ermöglicht Ihnen, den gesamten Datenrahmen oder nur einzelne Spalten zu konvertieren. Es gibt Ihnen auch die Möglichkeit zu wählen, wie Sie Dinge behandeln, die nicht in numerische Werte umgewandelt werden können:
import pandas as pd
s = pd.Series(['1.0', '2', -3])
pd.to_numeric(s)
s = pd.Series(['apple', '1.0', '2', -3])
pd.to_numeric(s, errors='ignore')
pd.to_numeric(s, errors='coerce')
Um' pd.to_numeric' auf einen 'DataFrame' anzuwenden, kann man' df.apply (pd.to_numeric) 'als [ausführlich in dieser Antwort erklärt] (https://stackoverflow.com/a/34844867) verwenden/604687). – Ninjakannon
- 1. Ausdruck in Zeichenfolgen umwandeln
- 2. Umwandeln von Zeichenfolgen in konvertierbare JSON-Arrays
- 3. Umwandeln von Matrix in Datenrahmen: Funktioniert in einem Fall, nicht in einem anderen
- 4. alle Spalten in einem Datenrahmen mit dplyr umwandeln?
- 5. R: XML-Daten in Datenrahmen umwandeln
- 6. Alle Elemente einer Liste von Zeichenfolgen in Großbuchstaben umwandeln
- 7. Eine Spalte von JSON-Zeichenfolgen in Strukturen umwandeln
- 8. Gleitkommazahlen in Set speichern?
- 9. SQL Server: Abmessungen in "Callout" Zeichenfolgen im Frontend umwandeln
- 10. Entfernen von Zeichenfolgen in einem String
- 11. Austauschen von Zeichenfolgen in einem Zeichenfolgenarray
- 12. Vergleich Gleitkommazahlen in D
- 13. Wie in einem Datenrahmen
- 14. Pandas konvertieren Zeichenfolgen zu Float für mehrere Spalten in Datenrahmen
- 15. einzigartig in einem Datenrahmen
- 16. ActiveModel :: Serializer: Konvertieren von IDs in Zeichenfolgen
- 17. PHP - Serialisieren von Gleitkommazahlen
- 18. Finden Sie Übereinstimmungen eines Vektors von Zeichenfolgen in einem anderen Vektor von Zeichenfolgen
- 19. Filter Datenrahmen von Daten in einem anderen Datenrahmen
- 20. Schema von einem Datenrahmen in einen anderen Datenrahmen kopieren
- 21. sortieren Datenrahmen Zeilen unabhängig von Werten in einem anderen Datenrahmen
- 22. Aktualisiere einen Wert in einem Datenrahmen in Abhängigkeit von übereinstimmenden Daten in einem anderen Datenrahmen
- 23. Ich habe Zeichenfolgen, die ich in ASCII-Zeichenfolgen umwandeln muss, wie kann ich sie konvertieren?
- 24. JavaScript Umwandeln von Zeichenfolgenwerten in Hexadezimalwerte
- 25. Format einer Datumsspalte in einem Datenrahmen
- 26. Umgang mit Genauigkeitsprobleme in Gleitkommazahlen
- 27. Zähldaten in einem Bereich von Pandas Datenrahmen
- 28. Zufallsprobe von einem Datenrahmen in R
- 29. Python, Speichern von Wörterbüchern in einem Datenrahmen
- 30. Get Spaltenindex von Etikett in einem Datenrahmen
NICHT VERWENDEN ** 'convert_objects' **. Es ist veraltet. Verwenden Sie 'to_numeric' oder' astype' stattdessen –