gpt4 book ai didi

python - pandas:DTypeWarning,但我指定了 dtypes

转载 作者:太空宇宙 更新时间:2023-11-03 15:18:24 24 4
gpt4 key购买 nike

我正在使用以下内容读取 Pandas Dataframe:

df = pd.read_csv('../table.csv.gz', nrows=10000,
index_col=False, engine='c',
true_values=[b'1'], false_values=[b'0'],
usecols=usecols, dtype=dtype)

我收到以下警告:

DtypeWarning:列 (5,2397,2402,2449) 具有混合类型。在导入时指定 dtype 选项或设置 low_memory=False。

但是这些列的标题名称出现在 dtype 中。所有这些列的指定类型为 np.bool,并且 csv 文件中这些列中存在的唯一值是 '1''' (逗号之间没有任何内容。这给出了一个类型为 object 的列,并在调用 DataFrame.fillna 时变为类型 bool)。

此外,当我编辑 CSV 文件以删除除违规列之外的所有列以尝试查明警告来源时,警告停止发生。

这是怎么回事?这是 read_csv 中的错误吗?我应该忽略这个警告吗?

最佳答案

所以我猜你的问题是当你读取文件时,这些列实际上有两种不同类型的值:np.bool('1')和np.nan(''),所以实际上如果你是告诉它将该列视为 np.bool 它不会这样做。我认为您可以尝试使用相同的方法,只需将 false_values 参数更改为 false_values = [b'']

df = pd.read_csv('../table.csv.gz', nrows=10000,
index_col=False, engine='c',
true_values=[b'1'], false_values=[b''],
usecols=usecols, dtype=dtype)

如果这不起作用,您还可以这样做:

df.loc[:,[5,2397,2402,2449]].fillna('0',inplace = True)
df.to_csv('../table.csv.gz')

现在,当您读回它时,实际上应该有 0。

df = pd.read_csv('../table.csv.gz', nrows=10000,
index_col=False, engine='c',
true_values=[b'1'], false_values=[b'0'],
usecols=usecols, dtype=dtype)

关于python - pandas:DTypeWarning,但我指定了 dtypes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43698781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com