Pandas 列中的 NA 和 NaN:Python

NA and NaN in Pandas column: Python

我有一个 Pandas 列,其中包含 NA、NaN 和浮点数(该列的 dtype 是 'Object')。我正在努力将 NA 转换为 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' 参数。希望你能帮忙。谢谢。

这有效:

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

你可以试试这个:

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' 告诉 pandas 替换任何不是数字或“.”的内容有 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