首页 > 解决方案 > Python pandas:将2个数据帧的2列与不同的日期时间索引相乘

问题描述

我有 2 个数据框UsdBrlDSliceindexesM. 第一种是按日计算,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相乘,但要匹配两个索引的正确月份。USDBRLindexesM['c']

类似于 excel 的 vlookup 乘法。谢谢。

标签: pythonpandasdataframe

解决方案


我解决了 1)y-m在第一个数据框中创建一个新列,然后 2)应用 map() 函数:

  1. UsdBrlDSlice['y-m'] = UsdBrlDSlice.index.to_period('M')

  2. UsdBrlDSlice['new col'] = UsdBrlDSlice['USDBRL'] * UsdBrlDSlice['y-m'].map(indexesM.set_index(indexesM.index)['c'])


推荐阅读