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
我有一个 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