5.13. Series Datetime

5.13.1. SetUp

>>> import pandas as pd
>>>
>>>
>>> df = pd.DataFrame([
...     {'firstname': 'Alice', 'lastname': 'Apricot', 'lastlogin': pd.Timestamp('2001-01-11')},
...     {'firstname': 'Bob', 'lastname': 'Blackthorn', 'lastlogin': pd.Timestamp('2002-02-12')},
...     {'firstname': 'Carol', 'lastname': 'Corn', 'lastlogin': pd.Timestamp('2003-03-13')},
...     {'firstname': 'Dave', 'lastname': 'Durian', 'lastlogin': pd.Timestamp('2004-04-14')},
...     {'firstname': 'Eve', 'lastname': 'Elderberry', 'lastlogin': pd.Timestamp('2005-05-15')},
...     {'firstname': 'Mallory', 'lastname': 'Melon', 'lastlogin': pd.NaT},
... ]).convert_dtypes()
>>>
>>> df
  firstname    lastname  lastlogin
0     Alice     Apricot 2001-01-11
1       Bob  Blackthorn 2002-02-12
2     Carol        Corn 2003-03-13
3      Dave      Durian 2004-04-14
4       Eve  Elderberry 2005-05-15
5   Mallory       Melon        NaT
>>>
>>> df.info(memory_usage='deep')
<class 'pandas.DataFrame'>
RangeIndex: 6 entries, 0 to 5
Data columns (total 3 columns):
 #   Column     Non-Null Count  Dtype
---  ------     --------------  -----
 0   firstname  6 non-null      string
 1   lastname   6 non-null      string
 2   lastlogin  5 non-null      datetime64[us]
dtypes: datetime64[us](1), string(2)
memory usage: 345.0 bytes

5.13.2. Date

>>> df['lastlogin'].dt.date
0    2001-01-11
1    2002-02-12
2    2003-03-13
3    2004-04-14
4    2005-05-15
5           NaT
Name: lastlogin, dtype: object

5.13.3. Time

>>> df['lastlogin'].dt.time
0    00:00:00
1    00:00:00
2    00:00:00
3    00:00:00
4    00:00:00
5         NaT
Name: lastlogin, dtype: object

5.13.4. Year

>>> df['lastlogin'].dt.year
0    2001.0
1    2002.0
2    2003.0
3    2004.0
4    2005.0
5       NaN
Name: lastlogin, dtype: float64

5.13.5. Month

>>> df['lastlogin'].dt.month
0    1.0
1    2.0
2    3.0
3    4.0
4    5.0
5    NaN
Name: lastlogin, dtype: float64

5.13.6. Day

>>> df['lastlogin'].dt.day
0    11.0
1    12.0
2    13.0
3    14.0
4    15.0
5     NaN
Name: lastlogin, dtype: float64

5.13.7. Month Name

>>> df['lastlogin'].dt.strftime('%B')
0     January
1    February
2       March
3       April
4         May
5         NaN
Name: lastlogin, dtype: str

5.13.8. Weekday Name

>>> df['lastlogin'].dt.strftime('%A')
0     Thursday
1      Tuesday
2     Thursday
3    Wednesday
4       Sunday
5          NaN
Name: lastlogin, dtype: str

5.13.9. Date Format

Polish:

>>> df['lastlogin'].dt.strftime('%d.%m.%Y')
0    11.01.2001
1    12.02.2002
2    13.03.2003
3    14.04.2004
4    15.05.2005
5           NaN
Name: lastlogin, dtype: str

US Short: >>> df['lastlogin'].dt.strftime('%-m/%-d/%Y') 0 1/11/2001 1 2/12/2002 2 3/13/2003 3 4/14/2004 4 5/15/2005 5 NaN Name: lastlogin, dtype: str