怎样对dataframe进行列遍历,将int型变成str型?

import pandas as pd

import numpy as np

df=pd.DataFrame(np.random.random_sample(size=(1000,4)),columns=list("ABCD"))

df["d"]=pd.DataFrame([1]*1000,columns=["D"])

print(df.iloc[:,4].dtypes.str)

现在要遍历dataframe的列,碰到int型的变成str型。
我打印了df.iloc[:,4].dtypes.str,显示为<i8.
这是怎么回事,为什么不显示"int"?

我是想对if(df.iloc[:,i].dtypes.str=="int") 就进行转换操作。
怎样对dataframe进行列遍历,将int型变成str型?


回答:

pandas里dtypes是属于series的,也就是每个series里元素的dtype都是相同的,type(series[0])返回的。如果series里混用int和float,最终的dtype还是float,所以你没法用dtype来区分一个series里面的int和float。

series.dtypes返回一个np.dtype对象,str是对应dtype对象的字符串表示,"<i8"代表这是8字节有符号整数。具体每种符号代表什么数据类型可以搜一下numpy.dtype。

比较特殊的是dtype("O"),它返回每个元素对应的python类型


回答:

print(df.iloc[:,4].dtypes.name)
'int64'

以上是 怎样对dataframe进行列遍历,将int型变成str型? 的全部内容, 来源链接: utcz.com/p/938124.html

回到顶部