2016-11-14 349 views
2

我有一個包含NA,NaN和浮點數的Pandas列(列的dtype是'Object')。我正在努力將新手轉換爲NaN。我想用NaN替換NA,然後將列dtype更改爲浮動。在Pandas中的NA和NaN列:Python

我嘗試過使用各種方法來替換NA。例如:

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' 告訴大熊貓更換任何東西,這不是一個數字或 ''與南

這是輸出:

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