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的索引和列。
我该怎么做?尝试了几种方式,它仍然没有工作......
答案 0 :(得分:3)
使用mul
功能和多个DataFrame
按Series
(列)按位置选择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