我正在尝试清理熊猫中的数据集,信息存储在csv文件中,并使用以下方式导入:
tester = pd.read_csv('date.csv')
每个列都包含一个“?”缺少值的地方。例如,有一个年龄列,其中包含9个问号(?)
我尝试将所有问号设置为NaN,我尝试过:
tester = pd.read_csv('date.csv', na_values=["?"])
tester['age'].replace("?", np.NaN)
tester.replace('?', np.NaN)
for col in tester :
print tester[col].value_counts(dropna=False)
当我知道年龄为9(?s)时,仍然返回0。在这种情况下,我假设检查失败,因为该值从未被视为?。
我已经查看了笔记本中的csv文件,并且字符周围没有空格等。
有没有强迫它以便被识别?
答案 0 :(得分:0)
read_csv
有一个na_values
参数。参见here。
df = pd.read_csv('date.csv', na_values='?')
答案 1 :(得分:0)
您非常靠近:
# IT looks like file is having spaces after comma, so use `sep`
tester = pd.read_csv('date.csv', sep=', ', engine='python')
tester['age'].replace('?', np.nan)
似乎某处的数据有问题,以便进行调试。
pd.read_csv('file', error_bad_lines=False)
tester = tester [~(tester == '?').any(axis=1)]
OR
pd.read_csv('file', sep='delimiter', header=None)
OR
pd.read_csv('file',header=None,sep=', ')