2

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

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

4

2 回答 2

3

当您使用 read_csv 方法时可以做到这一点。只需添加参数

na_values=-99.9

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

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

于 2013-07-05T05:30:07.320 回答
3

我认为@Joop 的回应更优雅。但是,如果您在读取 ​​CSV 后发现有某些其他值应该替换为NA/NaN,那么您可以使用:

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"])
于 2015-09-13T01:12:27.507 回答