gpt4 book ai didi

pandas - 在 Pandas 中合并/组合具有不同频率时间序列索引的两个数据帧?

转载 作者:行者123 更新时间:2023-12-03 17:06:52 25 4
gpt4 key购买 nike

使用 Pandas 0.15.1。假设我有以下两个数据框:

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

我想组合两个数据帧,以便将日期值传播到具有相应日期的每一分钟行。

由于分钟行实际上在 00:00:00 没有数据,我不希望该时间包含在结果数据框中。期望的输出:
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

我怎样才能做到这一点?我是否需要使用合并、连接或连接?

最佳答案

从...开始:

>>> 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

关于pandas - 在 Pandas 中合并/组合具有不同频率时间序列索引的两个数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27080542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com