Как создать столбец, в котором отображается тип данных каждого значения в столбце с типом данных «объект»

#python-3.x #pandas

Вопрос:

Ниже приведена упрощенная версия рассматриваемого df:

 df = pd.DataFrame({'col_1':[1,2,'Three',4,1.2,'_33']})

df

    col_1
0   1
1   2
2   Three
3   4
4   1.2
5   _33

df.dtypes
col_1     object
dtypes    object
dtype: object
 

Я хочу создать новый столбец, в котором будет показан тип данных для каждого значения col_1 .

ПРЕДПОЛАГАЕМЫЙ DF:

     col_1   dtypes
0   1       int
1   2       int
2   Three   string
3   4       int
4   1.2     float
5   _33     string
 

Ответ №1:

Сгенерировать type в новый столбец:

 df['types'] = df['col_1'].apply(type)
print (df)
   col_1            types
0      1    <class 'int'>
1      2    <class 'int'>
2  Three    <class 'str'>
3      4    <class 'int'>
4    1.2  <class 'float'>
5    _33    <class 'str'>
 

Если нужно имя класса, используйте лямбда-функцию:

 df['types'] = df['col_1'].apply(lambda x: type(x).__name__)
print (df)

   col_1  types
0      1    int
1      2    int
2  Three    str
3      4    int
4    1.2  float
5    _33    str