在 Pandas 中合并/组合两个具有不同频率时间序列索引的数据帧?
- 作者: King爱24936524
- 来源: 51数据库
- 2022-11-17
问题描述
使用熊猫 0.15.1.假设我有以下两个数据框:
Using pandas 0.15.1. Suppose I have the following two dataframes:
daily 2014-11-20 00:00:00 Rain 2014-11-21 00:00:00 Cloudy 2014-11-22 00:00:00 Sunny
.
minutely 2014-11-20 12:45:00 51 2014-11-20 12:46:00 43 2014-11-20 12:47:00 44 ... 2014-11-21 12:45:00 44 2014-11-21 12:46:00 46 2014-11-21 12:47:00 48 ... 2014-11-22 12:45:00 38 2014-11-22 12:46:00 32 2014-11-22 12:47:00 37
我想组合这两个数据框,以便将日期值传播到具有相应日期的每一分钟行.
I'd like to combine the two dataframes such that the day values get propagated to each minute row that have the corresponding day.
由于分钟行在 00:00:00 实际上没有数据,我不希望该时间包含在结果数据框中.期望的输出:
And since the minute rows do not actually have data at 00:00:00 I do not want that time included in the resulting dataframe. Desired output:
2014-11-20 12:45:00 51 Rain 2014-11-20 12:46:00 43 Rain 2014-11-20 12:47:00 44 Rain ... 2014-11-21 12:45:00 44 Cloudy 2014-11-21 12:46:00 46 Cloudy 2014-11-21 12:47:00 48 Cloudy ... 2014-11-22 12:45:00 38 Sunny 2014-11-22 12:46:00 32 Sunny 2014-11-22 12:47:00 37 Sunny
我怎样才能做到这一点?我需要使用合并、连接或连接吗?
How can I achieve this? Do I need to use merge, concat, or join?
推荐答案
开头:
>>> left
minutely
2014-11-20 12:45:00 51
2014-11-20 12:46:00 43
2014-11-20 12:47:00 44
2014-11-21 12:45:00 44
2014-11-21 12:46:00 46
2014-11-21 12:47:00 48
2014-11-22 12:45:00 38
2014-11-22 12:46:00 32
2014-11-22 12:47:00 37
>>> right
daily
2014-11-20 Rain
2014-11-21 Cloudy
2014-11-22 Sunny
你可以这样做:
>>> left['day'] = left.index.date
>>> right.index = right.index.date
>>> left.join(right, on='day', how='left')
minutely day daily
2014-11-20 12:45:00 51 2014-11-20 Rain
2014-11-20 12:46:00 43 2014-11-20 Rain
2014-11-20 12:47:00 44 2014-11-20 Rain
2014-11-21 12:45:00 44 2014-11-21 Cloudy
2014-11-21 12:46:00 46 2014-11-21 Cloudy
2014-11-21 12:47:00 48 2014-11-21 Cloudy
2014-11-22 12:45:00 38 2014-11-22 Sunny
2014-11-22 12:46:00 32 2014-11-22 Sunny
2014-11-22 12:47:00 37 2014-11-22 Sunny
推荐阅读
热点文章
Discord.py(重写)on_member_update 无法正常工作
0
Discord.py 在 vc 中获取用户分钟数
0
discord.py 重写 |为我的命令出错
0
Discord.py rewrite 如何 DM 命令?
0
播放音频时,最后一部分被切断.如何解决这个问题?(discord.py)
0
在消息删除消息 Discord.py
0
如何使 discord.py 机器人私人/直接消息不是作者的人?
0
(Discord.py) 如何获取整个嵌入内容?
0
Discord bot 尽管获得了许可,但不能提及所有人
0
Discord.py discord.NotFound 异常
0
