我有一个看起来像这样的数据框
> data
A B
1 1 2
2 2 1
我有一个像这样的参考数据框
> ref
Names Values
1 A 5
2 B 10
我想将每列乘以Ref中具有相同名称的对应行
结果应该是这个
> result
A B
1 5 20
2 10 10
用Python实现这一目标的最快方法是什么?任何帮助将不胜感激
答案 0 :(得分:4)
您可能要检查mul
df.mul(ref.set_index('Names').Values)
Out[137]:
A B
1 5 20
2 10 10
答案 1 :(得分:1)
您的参考数据框ref
可以表示为Series
,如下所示或用ref.set_index('Names')['Values']
s = pd.Series([5, 10], index=['A', 'B'])
您的data
数据帧如下:
df = pd.DataFrame(dict(A=[1,2], B=[2,1]))
将两者与df * s
相乘会产生所需的输出,因为每个对象的索引用于确定将哪些数组相乘。