【发布时间】:2018-09-30 07:13:03
【问题描述】:
我有一个数据框,例如:
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['col_name'].dtype? -
一列不会有混合 dtypes,如果它是混合的,它将默认为一些
object类型
标签: python excel pandas dataframe