在pd.read_csv中是否有办法用其他字符替换NaN值?

时间:2017-11-14 12:58:50

标签: python pandas csv

我在csv文件中有一些数据。 因为它是从机器收集的,所有行都应该是数字,但某些行中存在一些NaN值。并且机器可以使用字符串' - '自动替换这些NaN值。

我的问题是如何设置 pd.read_csv() 的参数来自动替换来自csv文件的'-'values?

5 个答案:

答案 0 :(得分:3)

在阅读csv文件时,您可以使用参数na_values

df = pd.read_csv('file.csv',na_values='-')

编辑: 然后你可以通过以下方式将nan转换为0

df.fillna(0,1,inplace=True)

答案 1 :(得分:1)

这对我有用:

df.fillna(0, inplace=True)

答案 2 :(得分:0)

将其放入read_csv函数即可: dtype={"count": pandas.Int64Dtype()}

df = pd.read_csv('file.csv')

此类型同时支持整数和pandas.NA值,因此您可以导入而不会使浮点数成为整数。

如有必要,您可以使用常规的DataFrame命令清除丢失的值,如此处其他答案所述。

顺便说一句,我第一次尝试解决这个问题将整数转换为字符串。如果感兴趣: df = pd.read_csv('file.csv', na_filter= False)

(它读取文件时不会用NaN替换任何丢失的值)。

答案 3 :(得分:0)

您可以在读取 csv 文件后替换 NaN。例如,将 NaN 转换为 0:

df = pd.read_csv('file.csv')

df.fillna(0,1,inplace=True)

使用参数na_values,如df = pd.read_csv('file.csv', na_values='-'),与此无关。

答案 4 :(得分:-1)

您可以尝试这样的事情:

import pandas

df = pandas.read_csv('somefile.txt')

df = df.fillna(0)

希望有所帮助!