Jak ukryć kolumnę DataFrame zawierającą ciągi i NaN
wartości na zmiennoprzecinkowe . Jest jeszcze jedna kolumna, której wartości są ciągami znaków i liczbami zmiennoprzecinkowymi; jak przekonwertować całą kolumnę na liczby zmiennoprzecinkowe.
113
convert_objects
. Jest przestarzały. Użyjto_numeric
lubastype
zamiast tegoOdpowiedzi:
Jest to dostępne w wersji 0.11. Wymusza konwersję (lub ustawia na nan). Będzie to działać nawet wtedy
astype
, gdy się nie powiedzie; jego również seria po seriach, więc nie będzie konwertować, powiedzmy, pełnej kolumny łańcuchowejźródło
df['ColumnName'] = df['ColumnName'].convert_objects(convert_numeric=True)
Możesz przekonwertować tylko jedną kolumnę.Możesz spróbować
df.column_name = df.column_name.astype(float)
. Jeśli chodzi oNaN
wartości, musisz określić, jak mają być konwertowane, ale możesz to zrobić za pomocą.fillna
metody.Przykład:
źródło
W nowszej wersji pand (0.17 i nowszych) możesz użyć funkcji to_numeric . Pozwala na konwersję całej ramki danych lub tylko pojedynczych kolumn. Daje również możliwość wyboru sposobu traktowania rzeczy, których nie można przekonwertować na wartości liczbowe:
źródło
pd.to_numeric
do aDataFrame
, można użyć,df.apply(pd.to_numeric)
jak wyjaśniono szczegółowo w tej odpowiedzi .źródło
ValueError: could not convert string to float: 'date'
musisz zamienić puste łańcuchy ('') na np.nan przed konwersją na float. to znaczy:
źródło
Oto przykład
ale jeśli to są wszystkie wartości ciągów ... tak jak w moim przypadku ... Zamień żądane kolumny na zmiennoprzecinkowe:
Twoja ramka danych będzie teraz miała wartości zmiennoprzecinkowe :-)
źródło