pd.read_csv中是否可以用其他字符替换NaN值?

Wil*_*haw 3 python csv pandas

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

我的问题是如何设置pd.read_csv()的参数以自动将csv文件中的'-'值替换为零?

小智 8

你可以尝试这样的事情:

import pandas

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

df = df.fillna(0)
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助!


shi*_*vsn 5

在读取csv文件时,可以使用参数na_values:

df = pd.read_csv('file.csv',na_values='-')
Run Code Online (Sandbox Code Playgroud)

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

df.fillna(0,1,inplace=True)
Run Code Online (Sandbox Code Playgroud)

  • 答案的第一部分是错误的。na_values不替代NaN值。它使您可以指定其他字符串以将其识别为** NA / NaN **。第二部分是有问题的,因为假设我的列中有整数,并且有一些“ NaN”值。由于NaNs,通常使用read_csv读取csv将int转换为浮点数。然后`fillna`只是将`NaN`替换为零,但是浮点数仍然保留。我个人想避免将整数转换为浮点数。 (3认同)