gpt4 book ai didi

python - 检查 Pandas 列的数据类型

转载 作者:行者123 更新时间:2023-11-28 22:23:34 25 4
gpt4 key购买 nike

我有一个 excel 文件,我正在将其导入为 pandas 数据框。

我的数据框df:

id    name    value
1 abc 22.3
2 asd 11.9
3 asw 2.4

我有一个字典d,格式为:

{ 'name' : 'str',
'value' : 'float64',
'id' : 'int64'}

我想检查我的数据框中列的数据类型是否与字典中定义的相同。

如果所有列都有各自的数据类型,输出可以只是一个字符串,

print("Success")
else:
print(" column id has different data type.Please check your file)"

最佳答案

调用dtypes,转换为字典并进行比较。

d1 = df.dtypes.astype(str).to_dict()

d1
{'id': 'int64', 'name': 'object', 'value': 'float64'}

d1 == {'name' : 'str', 'value' : 'float64', 'id' : 'int64'}
False

不幸的是,name 显示为 object 列,而不是 str,因此为 False。我建议对您的字典进行快速迭代,并将 str 出现的所有条目更改为 object(这应该不会造成伤害):

d2 = {k : 'object' if v == 'str' else v for k, v in d2.items()}

d2
{'id': 'int64', 'name': 'object', 'value': 'float64'}

d1 == d2
True

要检查哪些列不正确,解决方案会变得更加复杂,但通过列表理解仍然很容易。

[k for k in d1 if d1[k] != d2.get(k)] 
['name']

关于python - 检查 Pandas 列的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46925154/

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