【发布时间】:2019-06-29 13:48:02
【问题描述】:
如何将MultiIndex 数据帧中的列与多个标量(来自另一个数据帧)相乘?
对于普通数据帧,它是fairly straightforward,但当它到达 MultiIndex 数据帧时我会感到困惑。有什么建议吗?
虚拟数据:
import pandas as pd
import numpy as np
def mklbl(prefix, n):
return ["%s%s" % (prefix, i) for i in range(n)]
miindex = pd.MultiIndex.from_product([mklbl('C', 4), mklbl('D', 2)])
micolumns = pd.MultiIndex.from_tuples([('Baseline', 'Electricity'), ('Baseline', 'Gas'), ('Consumption', 'Electricity'), ('Consumption', 'Gas')])
df = pd.DataFrame(np.arange(len(miindex) * len(micolumns))
.reshape((len(miindex), len(micolumns))),
index=miindex,
columns= micolumns)
cost = pd.DataFrame([['Electricity', 0.12],['Gas', 0.03]], columns=['fuel__name', 'cost_per_unit'])
预期输出是虚拟数据乘以 Electricity 和 Gas 对应的 cost_per_unit,(即能源使用成本)
【问题讨论】: