
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 naNaT
(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.
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.