首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据datetime列将一行拆分为多行每小时数据

根据datetime列将一行拆分为多行每小时数据
EN

Stack Overflow用户
提问于 2021-08-27 09:13:32
回答 3查看 194关注 0票数 2

我有一个数据集,它显示了谁在哪个时间预订了哪个房间,它看起来像这样。

代码语言:javascript
运行
复制
email         room   Start Date           End Date
abc@corp.com  L11M2  2021-02-01 08:00:00  2021-02-01 11:00:00
xyz@corp.com  L12M4  2021-02-01 08:00:00  2021-02-01 10:00:00

我想把它分成不同的小时,这样一行只包含一个小时的数据。这就是我想要的数据帧。

代码语言:javascript
运行
复制
email         room   Start Date           End Date
abc@corp.com  L11M2  2021-02-01 08:00:00  2021-02-01 09:00:00
abc@corp.com  L11M2  2021-02-01 09:00:00  2021-02-01 10:00:00
abc@corp.com  L11M2  2021-02-01 10:00:00  2021-02-01 11:00:00
xyz@corp.com  L12M4  2021-02-01 08:00:00  2021-02-01 09:00:00
xyz@corp.com  L12M4  2021-02-01 09:00:00  2021-02-01 10:00:00

有没有什么办法可以用python做这件事?

EN

Stack Overflow用户

发布于 2021-08-27 09:37:27

结合pandas melt和pyjanitor的complete可以帮助转换数据:

代码语言:javascript
运行
复制
 # pip install pyjanitor
 import pandas as pd
 import janitor
(df.melt(['email', 'room'], value_name = 'Start_Date')
.reindex([3,1,2,0])
 # complete is a wrapper around pandas functions
 # to expose missing values ... in this case it exposes the 
 # missing dates for each group in by
.complete([{'Start_Date':lambda df: pd.date_range(df.min(), df.max(),freq='H')}], 
           by=['email', 'room'])
.assign(End_Date = lambda df: df.Start_Date.add(pd.Timedelta('1 hour')))
.query('variable != "End Date"').drop(columns='variable'))

          email   room          Start_Date            End_Date
0  abc@corp.com  L11M2 2021-02-01 08:00:00 2021-02-01 09:00:00
1  abc@corp.com  L11M2 2021-02-01 09:00:00 2021-02-01 10:00:00
2  abc@corp.com  L11M2 2021-02-01 10:00:00 2021-02-01 11:00:00
4  xyz@corp.com  L12M4 2021-02-01 08:00:00 2021-02-01 09:00:00
5  xyz@corp.com  L12M4 2021-02-01 09:00:00 2021-02-01 10:00:00
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68950904

复制
相关文章

相似问题

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