pandas dataframe乘以列,索引匹配

时间:2017-11-21 11:53:19

标签: python pandas multiplying

df1=pd.DataFrame(np.random.randn(6,3),index=list("ABCDEF"),columns=list("XYZ"))
df2=pd.DataFrame(np.random.randn(6,1),index=list("ABCDEF"))

我想将df1的每一列与df2相乘,并按索引标签进行匹配。这意味着:

df1["X"]*df2
df1["Y"]*df2
df1["Z"]*df2

输出将包含df1的索引和列。

我该怎么做?尝试了几种方式,它仍然没有工作......

2 个答案:

答案 0 :(得分:3)

使用mul功能和多个DataFrameSeries(列)按位置选择iloc

print(df1.mul(df2.iloc[:,0], axis=0))
          X         Y         Z
A -0.577748  0.299258 -0.021782
B -0.952604  0.024046 -0.276979
C  0.175287  2.507922  0.597935
D -0.002698  0.043514 -0.012256
E -1.598639  0.635508  1.532068
F  0.196783 -0.234017 -0.111166

详情:

print(df2.iloc[:, 0])
A   -2.875274
B    1.881634
C    1.369197
D    1.358094
E   -0.024610
F    0.443865
Name: 0, dtype: float64

答案 1 :(得分:0)

您可以使用javax.validation将df1中的每列与df2相乘。

apply