Как изменить тип столбца в pandas (с примерами)
Столбцы DataFrame pandas могут принимать один из следующих типов:
- объект (строки)
- int64 (целые числа)
- float64 (числовые значения с десятичными знаками)
- bool (истинные или ложные значения)
- datetime64 (даты и время)
Самый простой способ преобразовать столбец из одного типа данных в другой — использовать функцию astype() .
Вы можете использовать следующие методы с функцией astype() для преобразования столбцов из одного типа данных в другой:
Способ 1: преобразовать столбец в другой тип данных
df[' col1 '] = df[' col1 ']. astype (' int64 ')
Способ 2. Преобразование нескольких столбцов в другой тип данных
df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. astype (' int64 ')
Способ 3: преобразовать все столбцы в другой тип данных
df = df. astype (' int64 ')
В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas:
import pandas as pd #createDataFrame df = pd. DataFrame ({' ID ': ['1', '2', '3', '4', '5', '6'], ' tenure ': [12.443, 15.8, 16.009, 5.06, 11.075, 12.9546], ' sales ': [5, 7, 7, 9, 12, 9]}) #view DataFrame print (df) ID tenure sales 0 1 12.4430 5 1 2 15.8000 7 2 3 16.0090 7 3 4 5.0600 9 4 5 11.0750 12 5 6 12.9546 9 #view data type of each column print ( df.dtypes ) object ID tenure float64 dirty int64 dtype:object
Пример 1. Преобразование столбца в другой тип данных
Следующий код показывает, как использовать функцию astype() для преобразования столбца владения из числа с плавающей запятой в целое число:
#convert tenure column to int64
df[' tenure '] = df[' tenure ']. astype (' int64 ')
#view updated data type for each column
print ( df.dtypes )
object ID
tenure int64
dirty int64
dtype:object
Обратите внимание, что столбец владения был преобразован в int64, а все остальные столбцы сохранили исходные типы данных.
Пример 2. Преобразование нескольких столбцов в другой тип данных
В следующем коде показано, как использовать функцию astype() для преобразования столбцов ID и владения в целые числа:
#convert ID and tenure columns to int64
df[[' ID ', ' tenure ']] = df[[' ID ', ' tenure ']]. astype (' int64 ')
#view updated data type for each column
print ( df.dtypes )
ID int64
tenure int64
dirty int64
dtype:object
Обратите внимание, что столбцы ID и владения были преобразованы в int64.
Пример 3. Преобразование всех столбцов в другой тип данных
В следующем коде показано, как использовать функцию astype() для преобразования всех столбцов в DataFrame в целочисленный тип данных:
#convert all columns to int64
df = df. astype (' int64 ')
#view updated data type for each column
print ( df.dtypes )
ID int64
tenure int64
dirty int64
dtype:object
Обратите внимание, что все столбцы были преобразованы в int64.
Примечание . Полную документацию по функции pandas astype() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные преобразования в pandas:
Как преобразовать столбцы Pandas DataFrame в строки
Как преобразовать временную метку в дату/время в Pandas
Как преобразовать DateTime в дату в Pandas
Как преобразовать строки в числа с плавающей запятой в Pandas