我正在使用python脚本来清理和连接许多大型.csv文件。具体来说,我正在使用pandas read_csv函数读取文件,然后将它们作为数据帧对象处理,这一直很好用。这是我第一次使用pandas,所以我仍然习惯了它所包含的所有非常有用的功能。
我正在阅读的csv文件使用-99.9作为标记值来表示NA / NaN。由于这与我在其他地方表示缺失数据的方式不同,我想将所有出现的-99.9更改为“NaN”。有没有快速内置的方法来做到这一点,还是我必须迭代数据框并检查每个值?
答案 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"])