Jak określić format w pandas.to_datetime
Za pomocą funkcji pandas.to_datetime() można przekonwertować kolumnę typu string na kolumnę typu datetime w ramce DataFrame pandy.
Korzystając z tej funkcji, możesz użyć argumentu format , aby określić format daty, aby uniknąć błędów podczas konwertowania jej z ciągu znaków na datę i godzinę.
Ta funkcja wykorzystuje następującą podstawową składnię:
df[' datetime '] = pd. to_datetime (df[' my_date_column '], format=' %m%d%Y %H:%M:%S '])
Oto najczęstsze dyrektywy, które można podać do argumentu formatu :
- %m : Miesiąc jako liczba z zerem (01, 02, … 12)
- %d : Dzień miesiąca jako liczba z zerem (01, 02, … 31)
- %y : rok ze stuleciem jako numerem (2020, 2021, 2022 itd.)
- %H : Godzina (zegar 24-godzinny) jako liczba uzupełniona zerami (00, 01, … 23)
- %I : Czas (zegar 12-godzinny) jako liczba uzupełniona zerami (01, 02, … 12)
- %p : rano lub wieczorem
- %M : Minuta w postaci liczby uzupełnionej zerami (00, 01, … 59)
- %S : sekunda w postaci liczby uzupełnionej zerami (00, 01, … 59)
Pełną listę wytycznych znajdziesz na tej stronie .
Poniższy przykład pokazuje, jak używać argumentu formatu w funkcji to_datetime() w różnych scenariuszach.
Przykład: Określ format w pandas.to_datetime
Załóżmy, że mamy następującą ramkę DataFrame pand, która zawiera informacje o całkowitej sprzedaży zrealizowanej w różnych terminach w sklepie detalicznym:
import pandas as pd #createDataFrame df = pd. DataFrame ({' date ': ['10012023 4:15:30', '10042023 7:16:04', '10062023 9:25:00', '10142023 15:30:50', '10152023 18:15:00'], ' sales ': [100, 140, 235, 120, 250]}) #view DataFrame print (df) dirty dates 0 10012023 4:15:30 100 1 10042023 7:16:04 140 2 10062023 9:25:00 235 3 10142023 15:30:50 120 4 10152023 18:15:00 250 #view data type of each column in DataFrame print ( df.dtypes ) date object dirty int64 dtype:object
Widzimy, że kolumna daty jest obecnie kolumną typu string (tj. obiektem).
Załóżmy, że próbujemy użyć pandas.to_datetime() do konwersji tej kolumny na datetime:
#attempt to convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '])
ParserError: month must be in 1..12: 10012023 4:15:30 present at position 0
Otrzymujemy błąd, ponieważ funkcja pandas.to_datetime() nie rozpoznaje formatu daty i godziny, w jakim aktualnie znajduje się kolumna daty .
Możemy również użyć argumentu format , aby określić format kolumny:
#convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '], format=' %m%d%Y %H:%M:%S ')
#view DataFrame
print (df)
dirty dates
0 2023-10-01 04:15:30 100
1 2023-10-04 07:16:04 140
2 2023-10-06 09:25:00 235
3 2023-10-14 15:30:50 120
4 2023-10-15 18:15:00 250
#view updated type of each column
print ( df.dtypes )
date datetime64[ns]
dirty int64
dtype:object
Widzimy, że kolumna daty została pomyślnie przekonwertowana na kolumnę typu datetime i nie otrzymaliśmy żadnych błędów, ponieważ użyliśmy argumentu format , aby określić dokładny format kolumny daty .
Uwaga : pełną dokumentację funkcji pandas to_datetime() można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:
Jak utworzyć zakres dat w Pandach
Jak przekonwertować znacznik czasu na datę/godzinę w Pandach
Jak obliczyć różnicę między dwiema datami w pandach