我已经清理了一个数据集,并且需要用 None
替换很多 NaN
值。之后我将其保存到新的 CSV 文件中,但当我使用 pandas.read_csv
读取已清理的数据集时,所有的 None
值都被表示为 NaN
,我该如何避免这种情况?
read_csv
中使用参数keep_default_na
和na_values
,然后使用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'>
nan
的列可以有浮点数 dtype。而包含None
的列将会是对象 dtype。计算速度会变慢。 - hpaulj