python - Python pandas:将2个数据帧的2列与不同的日期时间索引相乘
问题描述
我有 2 个数据框UsdBrlDSlice
和indexesM
. 第一种是按日计算,yyyy-mm-dd
格式有索引,第二种是按月计算,yyyy-mm
格式有索引。
示例UsdBrlDSlice
:
USDBRL
date
1994-01-03 331.2200
1994-01-04 336.4900
1994-01-05 341.8300
1994-01-06 347.2350
1994-01-07 352.7300
...
2020-10-05 5.6299
2020-10-06 5.5205
2020-10-07 5.6018
2020-10-08 5.6200
2020-10-09 5.5393
我需要在 中插入一个新列,将它的值与 中的特定列UsdBrlDSlice
相乘,但要匹配两个索引的正确月份。USDBRL
indexesM['c']
类似于 excel 的 vlookup 乘法。谢谢。
解决方案
我解决了 1)y-m
在第一个数据框中创建一个新列,然后 2)应用 map() 函数:
UsdBrlDSlice['y-m'] = UsdBrlDSlice.index.to_period('M')
UsdBrlDSlice['new col'] = UsdBrlDSlice['USDBRL'] * UsdBrlDSlice['y-m'].map(indexesM.set_index(indexesM.index)['c'])
推荐阅读
- webrtc - 我可以编辑通过 webRTC 数据通道发送的消息吗?
- python - PySpark:按其他表中的子字符串过滤数据帧
- c++ - 重构函数/使用返回。C++
- mysql - 同一时期内聘用的员工
- python - 如何将多类别数据框绘制为单个箱线图
- python - 分别计算python数据框中不同列中的值和字符串?
- javascript - 如何在不使用 JavaScript 的情况下将元素粘贴到视口顶部并填充视口的可用垂直空间?
- git - 我可以让 git reset --hard 更安全或禁用它吗?
- makefile - MAKE TEST 权限被拒绝
- c - 去除前导和尾随非字母字符