Python 将序列与DataFrame相乘,其中Series.index==DataFrame.columns

Python 将序列与DataFrame相乘,其中Series.index==DataFrame.columns,python,pandas,numpy,Python,Pandas,Numpy,嗨,我有一个非常简单的场景,我不知道如何通过一个简单的方法来解决 我有以下数据帧: In [30]: d = pd.DataFrame([1,2,3], index=['A', 'B', 'C']) In [31]: d Out[31]: 0 A 1 B 2 C 3 In [32]: dd = pd.DataFrame({"A":[1,2,3], "B":[10,20,30], "C":[100, 200, 300]},

嗨,我有一个非常简单的场景,我不知道如何通过一个简单的方法来解决

我有以下数据帧:

In [30]: d = pd.DataFrame([1,2,3], index=['A', 'B', 'C'])

In [31]: d
Out[31]: 
   0
A  1
B  2
C  3

In [32]: dd = pd.DataFrame({"A":[1,2,3], "B":[10,20,30], "C":[100, 200, 300]}, 
                           index=["A", "B", "C"])

In [33]: dd
Out[33]: 
   A   B    C
A  1  10  100
B  2  20  200
C  3  30  300
现在我想把dd中的每一列乘以d中该索引的值。本质上,我试图为以下循环找到一个向量运算:

In [55]: for i in d.index:
    dd[i] *= d.ix[i][0]
   ....:     

In [56]: dd
Out[56]: 
   A   B    C
A  1  20  300
B  2  40  600
C  3  60  900
你可以

In [173]: dd * d[0]
Out[173]:
   A   B    C
A  1  20  300
B  2  40  600
C  3  60  900

In [174]: dd *= d[0]

In [175]: dd
Out[175]:
   A   B    C
A  1  20  300
B  2  40  600
C  3  60  900
或者

In [179]: dd.mul(d[0])
Out[179]:
   A   B    C
A  1  20  300
B  2  40  600
C  3  60  900