Создание столбца с типами данных с пандами - PullRequest
0 голосов
/ 18 марта 2019

У меня есть DataFrame df:

A   B
1   dog 
cat XX 

Я пытался создать панду 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)]

Но я получил только:

Ошибка типа: в скалярный индекс можно преобразовать только целочисленные скалярные массивы

Может кто-нибудь дать мне подсказку?это правильный подход?

Большое спасибо заранее

1 Ответ

3 голосов
/ 18 марта 2019

Использование applymap с type, concat назад

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'>
...