Jak przekonwertować kolumny na datetime w pandach


Często możesz być zainteresowany konwersją jednej lub więcej kolumn pandy DataFrame na format DateTime. Na szczęście można to łatwo zrobić za pomocą funkcji to_datetime() .

W tym samouczku przedstawiono kilka przykładów użycia tej funkcji w następującej ramce DataFrame:

 import numpy as np
import pandas as pd

#createDataFrame
df = pd.DataFrame({'event': ['A', 'B', 'C'],
                   'start_date': ['20150601', '20160201', '20170401'],
                   'end_date': ['20150608', '20160209', '20170416'] })

#view DataFrame
df

	event start_date end_date
0 A 20150601 20150608
1 B 20160201 20160209
2 C 20170401 201704161

#view column data types
df. dtypes

event object
start_date object
end_date object
dtype:object

Przykład 1: Konwertuj pojedynczą kolumnę na DateTime

Poniższy kod pokazuje, jak przekonwertować kolumnę „data_początkowa” z ciągu znaków na format DateTime:

 #convert start_date to DateTime format
df['start_date'] = pd. to_datetime (df['start_date'])

#view DataFrame
df

        event start_date end_date
0 A 2015-06-01 20150608
1 B 2016-02-01 20160209
2 C 2017-04-01 20170416

#view column date types
df. dtypes

event object
start_date datetime64[ns]
end_date object
dtype:object

Zauważ, że funkcja to_datetime() jest inteligentna i zazwyczaj może określić właściwy format daty, którego należy użyć, ale możesz także określić, jakiego formatu użyć za pomocą argumentu format :

 #convert start_date to DateTime format
df['start_date'] = pd. to_datetime (df['start_date'], format=' %Y%m%d ')

#view DataFrame
df

        event start_date end_date
0 A 2015-06-01 20150608
1 B 2016-02-01 20160209
2 C 2017-04-01 20170416

#view column date types
df. dtypes

event object
start_date datetime64[ns]
end_date object
dtype:object

Przykład 2: Konwertuj wiele kolumn na DateTime

Poniższy kod pokazuje, jak przekonwertować kolumny „data_początkowa” i „data_końcowa” z ciągów znaków na formaty DateTime:

 #convert start_date and end_date to DateTime formats
df[['start_date', 'end_date']] = df[['start_date', 'end_date']]. apply (pd. to_datetime )

#view DataFrame
df

	event start_date end_date
0 A 2015-06-01 2015-06-08
1 B 2016-02-01 2016-02-09
2 C 2017-04-01 2017-04-16

#view column date types
df. dtypes

event object
start_date datetime64[ns]
end_date datetime64[ns]
dtype:object

Przykład 3: Konwertuj kolumny do formatu DateTime za pomocą sekund

W niektórych przypadkach możesz także mieć kolumny zawierające datę, a także godziny, minuty i sekundy, na przykład następująca ramka danych:

 #createDataFrame
df = pd.DataFrame({'event': ['A', 'B', 'C'],
                   'start_date': ['20150601043000', '20160201054500', '20170401021215'],
                   'end_date': ['20150608', '20160209', '20170416'] })

#view DataFrame
df

        event start_date end_date
0 A 20150601043000 20150608
1 B 20160201054500 20160209
2 C 20170401021215 20170416

Ponownie, funkcja to_datetime() jest inteligentna i zazwyczaj może określić prawidłowy format, którego należy użyć, bez konieczności jego określania:

 #convert start_date to DateTime format
df['start_date'] = pd. to_datetime (df['start_date'])

#view DataFrame
df

        event start_date end_date
0 A 2015-06-01 04:30:00 20150608
1 B 2016-02-01 05:45:00 20160209
2 C 2017-04-01 02:12:15 20170416

#view column date types
df. dtypes

event object
start_date datetime64[ns]
end_date object
dtype:object

Oczywiście w środowisku naturalnym prawdopodobnie napotkasz wiele dziwnych formatów DateTime, więc może być konieczne użycie argumentu format , aby dokładnie powiedzieć Pythonowi, jakiego formatu DateTime ma użyć.

W takich przypadkach na tej stronie znajduje się pełna lista operatorów %DateTime, których można użyć do określenia formatów.

Dodatkowe zasoby

Jak przekonwertować DateTime na datę w Pandach
Jak przekonwertować ciągi na pływające w Pandach

Dodaj komentarz

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