Jak zmienić typ kolumny w pandach (z przykładami)


Kolumny pandy DataFrame mogą przyjmować jeden z następujących typów:

  • obiekt (stringi)
  • int64 (liczby całkowite)
  • float64 (wartości liczbowe z miejscami dziesiętnymi)
  • bool (wartości prawda lub fałsz)
  • datetime64 (daty i godziny)

Najłatwiejszym sposobem konwersji kolumny z jednego typu danych na inny jest użycie funkcji astype() .

Do konwersji kolumn z jednego typu danych na inny można użyć następujących metod z funkcją astype() :

Metoda 1: Konwertuj kolumnę na inny typ danych

 df[' col1 '] = df[' col1 ']. astype (' int64 ')

Metoda 2: Konwertuj wiele kolumn na inny typ danych

 df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. astype (' int64 ')

Metoda 3: Konwertuj wszystkie kolumny na inny typ danych

 df = df. astype (' int64 ')

Poniższe przykłady pokazują, jak w praktyce używać każdej metody z następującą ramką DataFrame pand:

 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

Przykład 1: Konwertuj kolumnę na inny typ danych

Poniższy kod pokazuje, jak użyć funkcji astype() do konwersji kolumny kadencji z liczby zmiennoprzecinkowej na liczbę całkowitą:

 #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

Należy zauważyć, że kolumna tenure została przekonwertowana na int64, podczas gdy wszystkie inne kolumny zachowały swoje oryginalne typy danych.

Przykład 2: Konwertuj wiele kolumn na inny typ danych

Poniższy kod pokazuje, jak użyć funkcji astype() do konwersji kolumn identyfikatora i stażu pracy na liczby całkowite:

 #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

Zauważ, że kolumny ID i kadencji zostały przekonwertowane na int64.

Przykład 3: Konwertuj wszystkie kolumny na inny typ danych

Poniższy kod pokazuje, jak użyć funkcji astype() do konwersji wszystkich kolumn w ramce DataFrame na typ danych całkowitych:

 #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

Zauważ, że wszystkie kolumny zostały przekonwertowane na int64.

Uwaga : pełną dokumentację funkcji astype() pandy można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe konwersje w pandach:

Jak przekonwertować kolumny Pandas DataFrame na ciągi
Jak przekonwertować znacznik czasu na datę/godzinę w Pandach
Jak przekonwertować DateTime na datę w Pandach
Jak przekonwertować ciągi na pływające w Pandach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *