用熊猫创建具有数据类型的列

时间:2019-03-18 15:56:17

标签: python-3.x pandas for-loop types multiple-columns

我有一个DataFrame df:

A   B
1   dog 
cat XX 

我一直在尝试创建一个如下所示的pandas DataFrame df_new:

A   B    type_of_A   type_of_B
1   dog  int         string
cat XX   string      whateverdtype it may be

我尝试过:

df_new["type_of_A"] = [pd.api.types.infer_dtype(i) for i in range(df_new['A'].values)]

但是我只有:

  

TypeError:仅整数标量数组可以转换为标量   索引

有人可以给我一个提示吗?这是正确的方法吗?

非常感谢

1 个答案:

答案 0 :(得分:3)

applymaptypeconcat一起使用

s=df.applymap(type).add_prefix('type_of_')
df=pd.concat([df,s],1)
Out[543]: 
     A    B      type_of_A      type_of_B
0    1  dog  <class 'int'>  <class 'str'>
1  cat   XX  <class 'str'>  <class 'str'>