首页 > 解决方案 > 根据日期时间列为一天中的小时和日期创建列

问题描述

如何根据具有日期时间时间戳的列创建一个仅包含一天和一天中的小时的新列?

DF 有如下列:

   Timestamp
2019-05-31 21:11:43 
2018-11-21 18:01:00 
2017-11-21 22:01:04 
2020-04-15 11:01:00 
2017-04-20 04:00:33

我想要两个如下所示的新列:

   Day      | Hour of Day
2019-05-31     21:00
2018-11-21     18:00
2017-11-21     22:00    
2020-04-15     11:00    
2017-04-20     04:00

我尝试了类似下面的方法,但它只给我一个 # 一天中的一个小时,

df['hour'] = pd.to_datetime(df['Timestamp'], format='%H:%M:%S').dt.hour

9:32:00 的输出将是 9,这不是我想要计算的

谢谢!

标签: pythonpython-3.xpandasdatetime

解决方案


请试试dt.strftime(format+string)

df['hour'] = pd.to_datetime(df['Timestamp']).dt.strftime("%H"+":00")

按照您的以下评论。让我们分别尝试使用和df.assign提取hourdate

df=df.assign(hour=pd.to_datetime(df['Timestamp']).dt.strftime("%H"+":00"), Day=pd.to_datetime(df['Timestamp']).dt.date)

推荐阅读