【发布时间】:2019-10-12 19:34:12
【问题描述】:
我有一个熊猫系列和一个熊猫多索引数据框。
这是一个简单的例子:
iterables = [['milk', 'honey', 'dates'], ['jan', 'feb', 'mar', 'apr']]
i = pd.MultiIndex.from_product(iterables, names=['good', 'month'])
xf = pd.DataFrame(index = i)
xf['price'] = np.random.randint(1, 25, xf.shape[0])
allocation_vector = pd.Series([0.3, 0.6, 0.1], index = ['milk', 'honey', 'dates'])
此数据框表示“从 1 月到 4 月每月三种产品的价格”。分配向量表示价格的部分份额。
我想要实现的是将分配向量乘以我的数据帧,从而得到一个索引为“jan”、“feb”、“mar”、“apr”的序列,其值等于该月的点积(IE:@ 987654322@ 分别为 1 月、2 月、3 月、4 月)
我只能用讨厌的迭代hacky 解决方案来解决这个问题。我认为必须有一种更加pythonic的方式来做到这一点,而且我不必担心向量列的顺序错误,以便与数据框列等相乘。当然,实际的数据框有更多的列'不参与计算。
【问题讨论】: