2016-10-05 1 views
0

У меня есть столбец данных, здесь надрез его:Невозможно преобразовать столбец с pandas.to_numeric

a = data["hs_directory"]["lat"][:5] 

0  40.67029890700047 
1  40.8276026690005 
2 40.842414068000494 
3  40.71067947100045 
4 40.718810094000446 
Name: lat, dtype: object 

Я стараюсь, чтобы преобразовать его в числовой с питоном, но не:

pandas.to_numeric(a, errors='coerce') 

Эта строка ничего не делает, dtype по-прежнему «объект», и я не могу выполнять математические операции с столбцом. Что я делаю неправильно?

+0

Вы пробовали 'pandas.convert'? Ссылка [здесь] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.convert_objects.html) или попробуйте 'df1 = df.apply (pd.to_numeric, args = ('coerce' ,)) ' – MattR

+0

pandas.to_numeric - это более новая версия pandas.convert, поэтому можно сказать, что я попробовал. Но вторая идея ('df1 = df.apply (pd.to_numeric, args = ('coerce',)') работала! Спасибо. Похоже, что я не думал, что нужна новая переменная. Поэтому 'df1 = pd .to_numeric (a, errors = 'coerce') 'также работает. –

+1

Вы переназначаете вывод' to_numeric', поскольку это не операция inplace, то есть 'a = pd.to_numeric (a, errors = 'coerce')' – root

ответ

0

Как обсуждалось в комментариях, позвольте мне опубликовать ответ для будущих читателей:

попробовать:

df1=pd.to_numeric(a,errors='coerce') 
Смежные вопросы