这个问题在这里已有答案:
data.csv
1, 22, 3432
1,23,\ N
2, 24, 54335
2, 25, 3928
我有一个从设备收集的csv数据文件。设备不时传递信息并输出'\ N'。我想把它们视为NaN并通过这样做来做到这一点
read_csv(data.csv, na_values=['\\N'])
工作得很好。但是,我不希望这个字符串转向NaN,而是csv文件中的任何字符串,以防我将来获得的数据有不同的字符串。
我可以对参数进行任何更改,以便涵盖所有字符串吗?
您必须手动将所有关键字作为列表或字典传递给na_values
na_values:list-like或dict,默认无
或者,在读取csv文件后,使用pd.to_numeric并将错误设置为coerce
以将所有值转换为数字。
样本输入df
:
A B
0 1 2
1 0 \N
2 \N 8
3 11 5
4 11 Kud
df = df.apply(pd.to_numeric, errors='coerce')
输出:
A B
0 1 2
1 0 NaN
2 NaN 8
3 11 5
4 11 NaN