Pandas专栏中的NA和NaN:Python

时间:2016-11-14 03:18:44

标签: python csv pandas nan na

我有一个Pandas列,其中包含NAs,NaN和浮点数(列的dtype是'Object')。我正在努力将NAs转换为NaN。我想用NaN替换NA,然后将列dtype更改为float。

我尝试过使用各种方法来替换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'参数。希望你能帮忙。谢谢。

2 个答案:

答案 0 :(得分:0)

这有效:

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

答案 1 :(得分: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