gpt4 book ai didi

python - 为什么即使 pandas 中存在列,我也会收到 Key 错误?

转载 作者:行者123 更新时间:2023-11-28 17:55:59 25 4
gpt4 key购买 nike

我的文件包含 Company、RecordID、Sale 等列。当我在将文件加载到 pandas dataframe 后第一次尝试查找其数据类型时,它列出了几个列的 float/int。所以我将它们更改为字符串,如下所示;

data = pd.read_csv(filepath)
print(data.dtypes)

Company Code object
SiteCode int64
Product Name object
RECORD ID int64
Tank ID int64
Date int64
Sale Volume float64
Deliveries Volume int64
Dip Volume float64

然后我在将输出写入文件之前将它们的类型更改为字符串;

>   data['RECORD ID'] = data['RECORD ID'].astype(str)
> data['Tank ID'] = data['Tank ID'].astype(str)

我明白了;

    return self._engine.get_loc(key)
File "pandas/_libs/index.pyx", line 107, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1607, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'RECORD ID'

如果我评论 recordid 并让 Tankid 转换,那么我会得到与 TankId 相同的 key 错误,这是为什么?

这是示例 csv; SIRA RECORD IDTANK ID 列给出问题

 Company Code,SiteCode,Product Name,SIRA RECORD ID,Tank ID,Date,Sale Volume,Deliveries Volume,Dip Volume
XXX,20995,27PMAXDSL,3535352,4,20191004,4383.49,12902,16000
XXX,20995,02ULP,3535351,3,20191004,8221.573,15996,9987.32
XXX,20995,02ULP,3535350,2,20191004,7303.1,8201,11200

最佳答案

如果需要将所有列都转换为字符串,最好在 read_csv 中使用参数 dtype:

data = pd.read_csv(filepath, dtype=str)

关于python - 为什么即使 pandas 中存在列,我也会收到 Key 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58406160/

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