#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