【发布时间】:2017-07-25 00:39:41
【问题描述】:
我有一个 pandas 数据框,其中包含在不同时间(索引)的特定位置(列)测量的值。例如(如果我将时间索引设置为整数):
data = pd.DataFrame(index=[0, 1, 2], columns=['A', 'B', 'C'], data=[[1, 2, 3], [4, 5, 6], [7, 8, 9]])
> data:
> A B C
> 0 1 2 3
> 1 4 5 6
> 2 7 8 9
我还想对数据应用多组权重:
weights = pd.DataFrame(index=['I', 'II'], columns=['A', 'B', 'C'], data=[[0.5, 0.5, 0.0], [0.5, 0.0, 0.5]])
> weights:
> A B C
> I 0.5 0.5 0.0
> II 0.5 0.0 0.5
对于我的两组不同的权重,我需要计算的是权重*数据的逐行求和积。例如:
> result:
> I II
> 1 1.5 2.0
> 2 4.5 5.0
> 3 7.5 8.0
我知道如何计算单个列,例如:
result_I = data.mul(weights[:].ix['I'], axis=1).sum(axis=1)
result_I:
> 0 1.5
> 1 4.5
> 2 7.5
有没有一种方法可以创建上面概述的结果数据框,而不是遍历所有行并连接?还是迭代/串联是最好的方法?
【问题讨论】: