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