使用NA替换pandas数据帧中所有值出现的快速方法

时间:2013-07-05 04:03:34

标签: python pandas

我正在使用python脚本来清理和连接许多大型.csv文件。具体来说,我正在使用pandas read_csv函数读取文件,然后将它们作为数据帧对象处理,这一直很好用。这是我第一次使用pandas,所以我仍然习惯了它所包含的所有非常有用的功能。

我正在阅读的csv文件使用-99.9作为标记值来表示NA / NaN。由于这与我在其他地方表示缺失数据的方式不同,我想将所有出现的-99.9更改为“NaN”。有没有快速内置的方法来做到这一点,还是我必须迭代数据框并检查每个值?

2 个答案:

答案 0 :(得分:3)

使用read_csv方法时可以这样做。只需添加参数

即可
na_values=-99.9

作为read_csv方法的参数。查看完整文档

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html

答案 1 :(得分:3)

我觉得@Joop的反应更优雅。但是,如果您发现某些其他值应由NA/NaN替换,则在阅读CSV后,您可以使用:

pandas_dataframe.replace(['bad_data_1', 'bad_data_2'], [None, None], inplace=True)

如果要创建单独的数据框,请将其设置为False

如果您在阅读CSV时知道错误值,则修改@ Joop的响应以将列表包括为:

train_df = pd.read_csv('/my.csv', na_values=["bad_value_1", "bad_value_2"])