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

Dodaj komentarz

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