我在pandas数据帧中有一个datetime64[ns]格式的对象。
我可以使用此列通过以下方式计算小时数:
df['hour'] = df['datetime'].dt.hour这将返回一个整数。例如:
datetime hour
19-10-2015 2015-10-19 01:00:00 1 以01:00:00时间格式输出hour列的最简单方法是什么?
发布于 2017-03-23 21:28:46
我觉得你需要dt.time
df['hour'] = df['datetime'].dt.time
print (df)
datetime hour
0 2015-10-19 01:00:00 01:00:00但如果需要将日期时间截断为小时:
df['hour'] = df['datetime'].values.astype('<M8[h]')
df['hour'] = df['hour'].dt.time
print (df)
datetime hour
0 2015-10-19 01:00:00 01:00:00
1 2015-10-19 01:50:00 01:00:00一点小技巧--添加字符串:00:00和strftime
df['hour'] = df['datetime'].dt.strftime('%H').add(':00:00')
print (df)
datetime hour
0 2015-10-19 01:00:00 01:00:00
1 2015-10-19 01:50:00 01:00:00发布于 2017-03-23 21:55:56
@jezrael已经覆盖了它...这个答案看起来像.dt.time,但却是一个字符串
df.assign(hour=df.datetime.dt.strftime('%H:%M:%S'))
datetime hour
0 2015-10-19 01:00:00 01:00:00发布于 2020-10-15 01:43:06
您可以将其转换为object,然后使用str.split(‘')将行划分为日期部分和时间部分,然后可以将每个部分分配到列或替换当前列。
df['date'], df['hour'] = df['datetime'].str.split(' ', 1).str
print (df)
datetime date hour
0 2015-10-19 01:00:00 2015-10-19 01:00:00
1 2015-10-19 01:50:00 2015-10-19 01:50:00https://stackoverflow.com/questions/42977395
复制相似问题