Як змінити тип стовпця в pandas (з прикладами)


Стовпці pandas DataFrame можуть приймати один із таких типів:

  • об’єкт (рядки)
  • 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 ')

Наступні приклади показують, як використовувати кожен метод на практиці з такими pandas DataFrame:

 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() для перетворення стовпців ідентифікатора та володіння на цілі числа:

 #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

Зауважте, що стовпці ідентифікатора та володіння було перетворено на 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
Як перетворити рядки на float у Pandas

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *