Как преобразовать столбец DataFrame, содержащий строки и NaN
значения, в числа с плавающей запятой. И есть еще один столбец, значениями которого являются строки и числа с плавающей запятой; как преобразовать весь этот столбец в числа с плавающей запятой.
113
convert_objects
. Это устарело. Используйтеto_numeric
илиastype
вместоОтветы:
Это доступно в версии 0.11. Принудительное преобразование (или установка в nan). Это будет работать, даже если
astype
не удастся; его также серия за серией, поэтому он не будет преобразовывать, скажем, полный строковый столбецисточник
df['ColumnName'] = df['ColumnName'].convert_objects(convert_numeric=True)
Вы можете преобразовать только один столбец.Можете попробовать
df.column_name = df.column_name.astype(float)
. Что касаетсяNaN
значений, вам нужно указать, как они должны быть преобразованы, но вы можете использовать.fillna
метод для этого.Пример:
источник
В более новой версии pandas (0.17 и выше) вы можете использовать функцию to_numeric . Он позволяет конвертировать весь фрейм данных или только отдельные столбцы. Это также дает вам возможность выбрать, как обращаться с вещами, которые нельзя преобразовать в числовые значения:
источник
pd.to_numeric
к aDataFrame
, можно использовать,df.apply(pd.to_numeric)
как подробно описано в этом ответе .источник
ValueError: could not convert string to float: 'date'
вы должны заменить пустые строки ('') на np.nan перед преобразованием в float. то есть:
источник
Вот пример
но если это все строковые значения ... как было в моем случае ... Преобразуйте нужные столбцы в числа с плавающей запятой:
Теперь ваш фрейм данных будет иметь значения с плавающей запятой :-)
источник