Zmiana typu danych

W pandas można zmieniać typ danych w ramach serii danych lub całego DataFrame’u za pomocą różnych metod. Oto kilka przykładów:

  1. Użycie metody astype:
import pandas as pd

# Tworzenie przykładowego DataFrame'u
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# Zmiana typu danych kolumny 'A' na ciągi znaków
df['A'] = df['A'].astype(str)

# Zmiana typu danych całego DataFrame'u na typy całkowite
df = df.astype(int)

2. Użycie metody apply z funkcją zmieniającą typ:

import pandas as pd

# Tworzenie przykładowego DataFrame'u
df = pd.DataFrame({'A': [1.1, 2.2, 3.3], 'B': [4, 5, 6]})

# Zmiana typu danych kolumny 'A' na całkowite
df['A'] = df['A'].apply(int)

# Zmiana typu danych całego DataFrame'u na typy zmiennoprzecinkowe
df = df.apply(float)

3. Użycie słownika podczas tworzenia DataFrame’u:

import pandas as pd

# Tworzenie DataFrame'u z podanymi typami danych
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, dtype=float)

4. Użycie metody infer_objects:

import pandas as pd

# Tworzenie przykładowego DataFrame'u z ciągami znaków, które mogą być zinterpretowane jako liczby
df = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['4', '5', '6']})

# Zmiana typu danych całego DataFrame'u na typy numeryczne (int lub float) na podstawie danych wejściowych
df = df.infer_objects()

5. Użycie metody pd.to_numeric do zmiany typu danych na typ numeryczny (int lub float):

import pandas as pd

# Tworzenie przykładowego DataFrame'u z ciągami znaków, które mogą być zinterpretowane jako liczby
df = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['4', '5', '6']})

# Zmiana typu danych kolumny 'A' na typ int
df['A'] = pd.to_numeric(df['A'], downcast='integer')

# Zmiana typu danych całego DataFrame'u na typ float
df = df.apply(pd.to_numeric, downcast='float')

6. Użycie metody pd.to_datetime do zmiany typu danych na datę i czas:

import pandas as pd

# Tworzenie przykładowego DataFrame'u z ciągami znaków, które mogą być zinterpretowane jako daty
df = pd.DataFrame({'A': ['2022-01-01', '2022-02-01', '2022-03-01'], 'B': ['2022-01-02', '2022-02-02', '2022-03-02']})

# Zmiana typu danych kolumny 'A' na datę i czas
df['A'] = pd.to_datetime(df['A'])

# Zmiana typu danych całego DataFrame'u na datę i czas
df = df.apply(pd.to_datetime)

7. Użycie metody pd.to_timedelta do zmiany typu danych na odstęp czasu:

import pandas as pd

# Tworzenie przykładowego DataFrame'u z ciągami znaków, które mogą być zinterpretowane jako odstępy czasu
df = pd.DataFrame({'A': ['1h', '2h', '3h'], 'B': ['4h', '5h', '6h']})

# Zmiana typu danych kolumny 'A' na odstęp czasu
df['A'] = pd.to_timedelta(df['A'])

# Zmiana typu danych całego DataFrame'u na odstęp czasu
df = df.apply(pd.to_timedelta)

8. Metoda pd.to_categorical jest używana do konwersji ciągów znaków lub liczb całkowitych na kategorie. Kategorie są specjalnym typem danych, które są przydatne, gdy chcemy przechowywać dane, które nie są liczbami, ale mogą być klasyfikowane do różnych grup. Kategorie są przydatne również podczas pracy z algorytmami uczenia maszynowego, ponieważ mogą być wykorzystywane do zamiany danych nienumerycznych na numeryczne dla celów modelowania.

import pandas as pd

# Tworzenie przykładowego DataFrame'u z ciągami znaków, które mogą być zinterpretowane jako kategorie
df = pd.DataFrame({'A': ['kategoria_1', 'kategoria_2', 'kategoria_3'], 'B': ['kategoria_2', 'kategoria_3', 'kategoria_1']})

# Zmiana typu danych kolumny 'A' na kategorie
df['A'] = pd.Categorical(df['A'])

# Zmiana typu danych całego DataFrame'u na kategorie
df = df.apply(pd.Categorical)