Search code examples
pythonpandasdatetimestrtotime

How to make hour visible in Pandas to_datetime?


This is the given dataframe ;

>>> df3
          15 Minutes         LINK NAME  secState
0   2021-01-11 00:00  hbretmask_sec10           0
1   2021-01-11 00:00  hgretmask_sec10           0
2   2021-01-11 00:00  hlretmask_sec10           0
3   2021-01-11 00:00  hmretmask_sec10           0
4   2021-01-11 00:00  hbretmask_sec11           0
5   2021-01-11 00:00  hgretmask_sec11           0
6   2021-01-11 00:00  hlretmask_sec11           0
7   2021-01-11 00:00  hmretmask_sec11           0
8   2021-01-11 00:00  hbretmask_sec12           0
9   2021-01-11 00:00  hgretmask_sec12           0
10  2021-01-11 00:00  hlretmask_sec12           0

And i am recasting "15 Minutes" date column to datetime format ;

df3["15 Minutes"] =  pd.to_datetime(df3["15 Minutes"],errors= "coerce",format='%Y-%m-%d %H:%M')

And the hour field is disappearing in date column ;

>>> df3
   15 Minutes         LINK NAME  secState
0  2021-01-11  hbretmask_sec10           0
1  2021-01-11  hgretmask_sec10           0
2  2021-01-11  hlretmask_sec10           0
3  2021-01-11  hmretmask_sec10           0
4  2021-01-11  hbretmask_sec11           0
5  2021-01-11  hgretmask_sec11           0
6  2021-01-11  hlretmask_sec11           0
7  2021-01-11  hmretmask_sec11           0
8  2021-01-11  hbretmask_sec12           0
9  2021-01-11  hgretmask_sec12           0
10 2021-01-11  hlretmask_sec12           0

When i check, although it is normally there..

>>> df3.iloc[0]
15 Minutes    2021-01-11 00:00:00
LINK NAME        hbretmask_sec10
secState                      0
Name: 0, dtype: object

This happens only in 00:00 hours.. How can i make hours visible ?


Solution

  • to show hour, you would need to use 'strftime':

    df['Minutes'] = df['Minutes'].apply(lambda x: x.strftime('%Y-%m-%d %H:%M'))