python - 防止 Pandas 将 None 读作 Nan

标签 python csv pandas numpy nan

我清理了一个数据集,不得不替换很多 NaN值与 None .之后我将它保存到一个新的 csv 文件中,当我使用 pandas.read_csv 读回清理过的数据集时,所有None值表示为 NaN ,我怎样才能避免这种情况?

最佳答案

您可以使用参数 keep_default_nana_values read_csv 然后 replace 字符串 None到值 None :

import pandas as pd
from pandas.compat import StringIO

temp=u"""a,b
None,NaN
a,8"""
#after testing replace 'StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp),keep_default_na=False,na_values=['NaN'])

print (df)
      a    b
0  None  NaN
1     a  8.0

print (type(df.a.iloc[0]))
<class 'str'>

df = df.replace({'None':None})
print (df)
      a    b
0  None  NaN
1     a  8.0

print (type(df.a.iloc[0]))
<class 'NoneType'>

关于python - 防止 Pandas 将 None 读作 Nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42027862/

相关文章:

python numpy csv标题在列而不是行

python - 将 CSV 文件导入我的 Django 模型

python - Pandas df.idmax 在 0.22.0 版本中失败

python - 如何从表中检索行并使用 urllib 获取/打开每个链接?

python - 在Python中删除唯一的行

python - 用随机值替换数据框中的 NaN

python - 如何重启twisted和deluge客户端rpc的reactor

python - 使用 DictWriter 读写 csv

python - 使用数据框中的两列组合创建字典列,然后计算具有公共(public)键的两列值的比率

python - 将列标题转换为值