我在csv文件中有一些数据。 因为它是从机器收集的,所有行都应该是数字,但某些行中存在一些NaN值。并且机器可以使用字符串' - '自动替换这些NaN值。
我的问题是如何设置 pd.read_csv() 的参数来自动替换来自csv文件的'-'values?
答案 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)
希望有所帮助!