将两个具有相同列名但索引不同的数据框相乘

时间:2020-07-10 18:38:59

标签: python pandas dataframe

我有两个数据框,一个包含数据,一个包含一系列预测假设。列名称对应,但索引级别不对应(根据设计)。请向我展示如何将df1中的A,B和C列乘以df2中的相关列,如下面的示例所示,,并且完整保留原始数据帧的其余部分(也称为D列)。谢谢!

short

1 个答案:

答案 0 :(得分:1)

>>>df[['A','B','C']] * df2.values

      A    B    C
1    81  168  116
2    21    8    6
3   147  108   52
4    54   64  114
5    48   16   20
6    72  116   12
7    36  188  178
8    90   96  162
9    63  166  156
10  120   22   10

因此,您可以覆盖:

df.loc[:,['A','B','C']] = df[['A','B','C']] * df2.values

我想您可以做到更具编程性:

df[df2.columns] *= df2.values