Multiply Series with DataFrame,其中series.index == dataframe.columns

时间:2017-08-17 17:21:42

标签: 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]}, 
                           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

1 个答案:

答案 0 :(得分:3)

你可以

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