Jak działa pandas to_datetime w języku Python? Przykład zastosowania

Jak działa pandas to_datetime w języku Python? Przykład zastosowania
„`html

Podczas pracy z danymi w Pythonie często musimy konwertować różne formaty dat i godzin na standardowy typ datetime. Właśnie do tego celu służy funkcja pandas.to_datetime(). Jest to potężne narzędzie, które pozwala na wygodne przekształcanie danych tekstowych, liczbowych i mieszanych do postaci obsługiwanej przez bibliotekę pandas.

Co to jest pandas.to_datetime()?

Funkcja pandas.to_datetime() umożliwia konwersję wartości na obiekt datetime. Przyjmuje różnorodne wejścia, takie jak:

  • napisy (np. '2024-06-01'),
  • listy lub Series zawierające daty,
  • wartości liczbowe reprezentujące daty w formacie Unix timestamp,
  • obiekty już będące datami, ale w innym formacie.

Dzięki temu możemy łatwo przekształcać dane i operować nimi w sposób bardziej zrozumiały i elastyczny.

Podstawowe użycie pandas.to_datetime()

Najprostszy przykład użycia pandas.to_datetime() to przekazanie do niej daty w formie tekstowej:


import pandas as pd

data = "2024-06-01"
converted_date = pd.to_datetime(data)
print(converted_date)

Wynik będzie wyglądał następująco:

2024-06-01 00:00:00

Jak widać, funkcja automatycznie dodała godzinę 00:00:00, gdyż nie podaliśmy dokładniejszego czasu.

Konwersja listy wartości

Jeśli mamy listę dat zapisanych jako ciągi znaków, możemy przekonwertować je zbiorczo:


dates = ["2024-06-01", "2024-06-02", "2024-06-03"]
converted_dates = pd.to_datetime(dates)
print(converted_dates)

Rezultat będzie następujący:


DatetimeIndex(['2024-06-01', '2024-06-02', '2024-06-03'], dtype='datetime64[ns]', freq=None)

Dzięki temu elementy są automatycznie interpretowane jako indeks dat.

Obsługa różnych formatów dat

Nie zawsze mamy dane zapisane w standardowym formacie. Na szczęście pandas.to_datetime() umożliwia określenie formatu za pomocą parametru format:


data = "01/06/2024"
converted_date = pd.to_datetime(data, format="%d/%m/%Y")
print(converted_date)

W ten sposób funkcja dokładnie wie, jak interpretować podaną wartość.

Obsługa wartości brakujących i błędnych

Często spotykamy się z danymi zawierającymi puste wartości lub błędne wpisy. Możemy zabezpieczyć się przed błędami za pomocą parametru errors:

  • errors='raise' – domyślne ustawienie: zwróci błąd przy napotkaniu problematycznej wartości,
  • errors='coerce' – zamiast błędu, zamieni niepoprawne wpisy na NaT (Not a Time),
  • errors='ignore' – pozostawi wartości bez zmian.

dates = ["2024-06-01", "invalid_date", "2024-06-03"]
converted_dates = pd.to_datetime(dates, errors="coerce")
print(converted_dates)

Teraz każda błędna wartość zostanie zastąpiona NaT, co pozwala na dalszą obróbkę danych.

Konwersja timestampów

Jeśli mamy dane w formacie Unix timestamp (liczby całkowite), możemy łatwo przekonwertować je na daty:


timestamps = [1717200000, 1717286400, 1717372800]
converted_timestamps = pd.to_datetime(timestamps, unit="s")
print(converted_timestamps)

Wynik będzie wyglądał następująco:


DatetimeIndex(['2024-06-01', '2024-06-02', '2024-06-03'], dtype='datetime64[ns]', freq=None)

W ten sposób możemy łatwo pracować z danymi liczbowymi przedstawiającymi czas.

Porównanie różnych opcji pandas.to_datetime()

Dla łatwiejszego zrozumienia przedstawiam kilka różnych przykładów w formie tabeli:

Wejściowa wartość Użyta funkcja Rezultat
"2024-06-01" pd.to_datetime("2024-06-01") 2024-06-01 00:00:00
"01/06/2024" pd.to_datetime("01/06/2024", format="%d/%m/%Y") 2024-06-01 00:00:00
1717200000 pd.to_datetime(1717200000, unit="s") 2024-06-01 00:00:00
"invalid_date" pd.to_datetime("invalid_date", errors="coerce") NaT

Podsumowanie

Funkcja pandas.to_datetime() w języku Python jest niezwykle wszechstronna i pozwala na konwersję wielu różnych formatów danych do postaci datetime. Dzięki niej możemy przekształcać teksty, liczby oraz obsługiwać błędne wartości. Jej zastosowanie jest nieocenione w analizie danych, szczególnie gdy mamy do czynienia z dużymi zbiorami informacji.

„` Inny ciekawy artykuł: Jak działa pandas astype w języku Python? Przykład zastosowania
KajoDataSpace