python - 如何在熊猫中合并/加入/连接/对齐两个具有不同时间间隔索引和大小的df
问题描述
关于这个主题的文章很多,但我仍然无法弄清楚这一点:
我有 df1 的时间间隔不均匀的行,例如:
Time a
2015-04-07 09:09:48 185.25
2015-04-07 09:30:50 190.50
2015-04-07 09:31:07 187.00
2015-04-07 09:35:23 190.60
2015-04-07 09:47:43 185.30
然后我有一个更大的 df2 也有不均匀的行,例如:
time b c
2016-06-08 09:09:00 32.30 32.80
2016-06-08 09:09:48 32.35 32.89
2016-06-08 09:24:22 32.30 32.81
2016-06-08 09:30:50 32.40 32.84
我想用 df1 中的每一行创建一个新的 df,如果有的话,可以使用 df2 中的时间对应行。
预期结果:
Time a b c
2015-04-07 09:09:48 185.25 32.35 32.89
2015-04-07 09:30:50 190.50 32.40 32.84
...
是否可以在自定义频率上重新采样,即 df1.index?
欢迎任何提示或线索:)
更新
少处理一个问题,我去掉了 df2 中的重复条目:
df2[~df2.index.duplicated(keep='last')]
我正在寻找熊猫解决方案。上面的示例相应更新。
解决方案
我不知道 pandas 是否有任何库,但这应该可以使用字典轻松解决。
从df1构建dict_1,从df2构建dict_2,以时间为键,然后:
for time_key in dict_1:
if time_key in dict_2:
dict_1[time_key]['b'] = dict_2[time_key]['b']
dict_1[time_key]['c'] = dict_2[time_key]['c']
推荐阅读
- android - 在 Android 7 中将自定义铃声设置为特定的联系人号码
- cypress - 如何等待元素可见
- docker - 加载共享库时 docker build RUN 错误
- bash - awk/sed:将匹配字符串的出现次数添加到文件中
- javascript - 无法访问从父级作为道具传递的数组 - React
- datomic - 如何对包含具有多个属性的角色的域进行建模?
- c# - Xamarin Picker 不接受其 itemsSource 上的空项目
- reactjs - 如何在蚂蚁设计选项卡上添加工具提示?
- php - 致命错误:未捕获的错误:调用未定义的函数,当函数在 require 中定义时
- python - 强制 pytorch 使用 gpu