pandas read_csv并将na_values设置为csv文件中的任何字符串[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

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文件中的任何字符串,以防我将来获得的数据有不同的字符串。

我可以对参数进行任何更改,以便涵盖所有字符串吗?

python pandas dataframe data-cleaning
1个回答
4
投票

您必须手动将所有关键字作为列表或字典传递给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   
© www.soinside.com 2019 - 2024. All rights reserved.