首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas .dt.hour格式

Pandas .dt.hour格式
EN

Stack Overflow用户
提问于 2017-03-23 21:25:45
回答 3查看 10.9K关注 0票数 5

我在pandas数据帧中有一个datetime64[ns]格式的对象。

我可以使用此列通过以下方式计算小时数:

代码语言:javascript
复制
df['hour'] = df['datetime'].dt.hour

这将返回一个整数。例如:

代码语言:javascript
复制
datetime                        hour
19-10-2015 2015-10-19 01:00:00  1  

01:00:00时间格式输出hour列的最简单方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-23 21:28:46

我觉得你需要dt.time

代码语言:javascript
复制
df['hour'] = df['datetime'].dt.time
print (df)
             datetime      hour
0 2015-10-19 01:00:00  01:00:00

但如果需要将日期时间截断为小时:

代码语言:javascript
复制
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:00strftime

代码语言:javascript
复制
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
票数 10
EN

Stack Overflow用户

发布于 2017-03-23 21:55:56

@jezrael已经覆盖了它...这个答案看起来像.dt.time,但却是一个字符串

代码语言:javascript
复制
df.assign(hour=df.datetime.dt.strftime('%H:%M:%S'))

             datetime      hour
0 2015-10-19 01:00:00  01:00:00
票数 2
EN

Stack Overflow用户

发布于 2020-10-15 01:43:06

您可以将其转换为object,然后使用str.split(‘')将行划分为日期部分和时间部分,然后可以将每个部分分配到列或替换当前列。

代码语言:javascript
复制
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:00
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42977395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档