2016-11-14 11 views
2

NAs、NaN、および浮動小数点数を含むPandas列を持っています(列のdtypeは 'Object'です)。私はNaをNaNに変換するのに苦労しています。 NaAsをNAsに置き換え、列dtypeをfloatに変更したい。パンダ列のNAとNaN:Python

私は、NAsを置き換えるためにさまざまな方法を試しました。例:

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 

また、csvを読むときにna_values = 'NA'パラメータを使用してみました。あなたが手伝ってくれることを願います。ありがとう。

答えて

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