【发布时间】:2022-01-01 11:02:54
【问题描述】:
您好,我正在尝试将一个数据帧与另一个数据帧中的一行相乘。
df1
| Date | ABC | DEF | XYZ |
|---|---|---|---|
| 2020-01-31 | 3 | 4 | 2 |
| 2020-02-31 | 1 | 3 | 5 |
| 2020-03-31 | 4 | 2 | 6 |
| 2020-04-31 | 2 | 2 | 7 |
df2
| Year | ABC | DEF | XYZ |
|---|---|---|---|
| 2020 | .5 | .4 | .3 |
有没有办法在 DF1 的所有值上使用多个 DF2 以获得如下所示的 DF3。
df3
| Date | ABC | DEF | XYZ |
|---|---|---|---|
| 2020-01-31 | 1.5 | 1.6 | .6 |
| 2020-02-31 | .5 | 1.2 | 1.5 |
| 2020-03-31 | 2 | .8 | 1.8 |
| 2020-04-31 | 1 | .8 | 2.1 |
我试过了
df3.loc[:,['ABC','DEF','XYZ']] = df1.mul(df2, level=1,axis='columns')
但我最终会发现 df3 充满了 NaN。
【问题讨论】:
-
df3 = df1.set_index("Date").mul(df2.to_numpy())?