防止 pandas 将 None 读取为 Nan

Prevent pandas from reading None as Nan

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

您可以在 read_csv and then replace 字符串 None 中使用参数 keep_default_nana_values 到值 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'>