2016-11-14 10 views
2

У меня есть столбец Pandas, который содержит NA, NaNs и floats (dtype столбца - «Object»). Я изо всех сил пытаюсь преобразовать NA в NaNs. Я хочу заменить NA на NaN, а затем изменить dtype столбца на float.NA и NaN в столбце Pandas: Python

Я попытался использовать различные методы для замены НС. Например:

df.data.astype('float', inplace=True) 
ValueError: could not convert string to float: NA 

df.data[df.data == 'NA'] 
Series([], Name: data, dtype: object) # empty 

Я также пробовал использовать параметр na_values ​​= 'NA' при чтении csv. Надеюсь, ты поможешь. Благодарю.

ответ

0

Это сработало:

df.data = pd.to_numeric(df.data, errors='coerce') 
0

Вы можете попробовать это:

import pandas as pd 
import numpy as np 

df = pd.DataFrame([1, 2, 3, 4, 5, 'NA', 6, 7, 'NaN', 'Stuff'], columns=['Col1']) 

rem_fields = (r'[^.0-9]') 

rep_with = (np.nan) 

df['Col1'].replace(regex=True, inplace=True, to_replace=rem_fields, value= rep_with) 

print df 

'rem_fields' говорит панд, чтобы заменить что-нибудь, что это не цифра или '' с NaN

Это выход:

Col1 
0 1.0 
1 2.0 
2 3.0 
3 4.0 
4 5.0 
5 NaN 
6 6.0 
7 7.0 
8 NaN 
9 NaN