gpt4 book ai didi

python - 我怎么知道 Pandas 数据框单元格的类型

转载 作者:行者123 更新时间:2023-12-03 19:48:04 24 4
gpt4 key购买 nike

我有一个数据框,例如:

1
1.3
2,5
4
5

使用以下代码,我想知道我的 pandas 数据框的不同单元格的类型是什么:
for i in range (len(data.columns)) :
print (" lenth of columns : " + str(len(data.columns)) )
for j in range (len(data[i])) :
data[i][j]=re.sub(r'(\d*)\.(\d*)',r'\1,\2',str(data[i][j]))
print(str(data[i][j]))

print(" est de type : "type(data[i][j]))
if str(data[i][j]).isdigit():
print(str(data[i][j]) + " contain a number " )

问题是当数据框的一个单元格包含一个点时,pandas 认为它​​是一个字符串。所以我使用了正则表达式,为了把点变成逗号。

但在那之后,我所有的数据框单元格的类型都变成了字符串。我的问题是:我怎么知道数据框的单元格是 int 还是 float?我已经尝试过 isinstance(x, int)
编辑:如何计算 int 和 float 的数量,例如 df.apply(type) 的输出,我想知道 我的列中有多少个单元格是 int 或 float

我的第二个问题是,为什么当我有 2.5 时,数据框会给他 str 类型?
    0       <class 'int'>
1 <class 'str'>
2 <class 'float'>
3 <class 'float'>
4 <class 'int'>
5 <class 'str'>
6 <class 'str'>

谢谢。

最佳答案

如果您有不同类型的列,例如

>>> df = pd.DataFrame(data = {"l": [1,"a", 10.43, [1,3,4]]})
>>> df
l
0 1
1 a
2 10.43
4 [1, 3, 4]

Pandas 只会声明这个 Series是 dtype object .但是,您可以通过简单地应用 type 来获取每个条目类型。功能
>>> df.l.apply(type)
0 <type 'int'>
1 <type 'str'>
2 <type 'float'>
4 <type 'list'>

但是,如果您有一个数据类型非常不同的数据集,您可能应该重新考虑它的设计。

关于python - 我怎么知道 Pandas 数据框单元格的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49926897/

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