将一个数据框中的百分比应用于其他数据框中的列以创建新数据框

Applying percentage in one dataframe to columns in other data frame to create new dataframe

我是 python 的新手,所以这可能是一个愚蠢而简单的问题。

我有两个数据框,第一个数据框有一个百分比列,需要应用于 Dataframe2 中的 A、B、C 列。有什么建议吗?

数据框 1

区域百分比

南方 34.4%

北 27.0%

西部 21.2%

东部 14.8%

其他 2.6%

数据框 2 周结束上限预测值下限状态预测日期

22/05/2022 2112.2 2316.4 2525.9 CA 30/05/2022

29/05/2022 2123.8 2331.1 2523.4 CA 30/05/2022

5/06/2022 2136.5 2340.5 2553.8 CA 30/05/2022

12/06/2022 2148.466667 2353.433333 2562.266667 CA 30/05/2022

19/06/2022 2160.616667 2365.483333 2576.216667 CA 30/05/2022

26/06/2022 2172.766667 2377.533333 2590.166667 CA 30/05/2022

所需数据框

区域周结束上限预测值下限状态预测日期

南 22/05/2022 726.6 796.8 868.9 CA 30/05/2022

北 22/05/2022 570.3 625.4 682.0 CA 30/05/2022

西部 22/05/2022 447.8 491.1 535.5 CA 30/05/2022

东部 22/05/2022 312.6 342.8 373.8 CA 30/05/2022

其他 22/05/2022 54.9 60.2 65.7 CA 30/05/2022

南 29/05/2022 730.6 801.9 868.0 CA 30/05/2022

北 29/05/2022 573.4 629.4 681.3 CA 30/05/2022

西部 29/05/2022 450.2 494.2 535.0 CA 30/05/2022

东部 29/05/2022 314.3 345.0 373.5 CA 30/05/2022

其他 29/05/2022 55.2 60.6 65.6 CA 30/05/2022

南 5/06/2022 735.0 805.1 878.5 CA 30/05/2022

北 5/06/2022 576.9 631.9 689.5 CA 30/05/2022

西部 5/06/2022 452.9 496.2 541.4 CA 30/05/2022

东部 5/06/2022 316.2 346.4 378.0 CA 30/05/2022

其他 5/06/2022 55.5 60.9 66.4 CA 30/05/2022

请在下面的 excel 图片中找到,希望上面带有 excel 图片的数据会更有意义。如果他们允许的话,我很乐意附上 excel。在此先感谢您的帮助。

enter image description here

1. 因为我们没有公共键(),所以我们不能合并它们,所以技巧是使两个 DF 大小相同。

1.1 使 df1 到 30 行,重复相同的行块:

df1 = pd.concat([df1]*6, ignore_index=True)

1.2 使 df2 到 30 行重复 index 这次:

df2 = df2.loc[df2.index.repeat(5)].reset_index(drop=True)

2. 现在我们有 2 个相同大小的 dfs (length),我们可以 concat() 它们:

df3 = pd.concat([df1, df2], axis=1)

3. 现在是时候将 3 列乘以“百分比”(我已经删除了 "%" 使它更容易) 一:

df3[["Upper Limit", "Forecasted value", 'Lower limit']] = (df3[["Upper Limit", "Forecasted value", 'Lower limit']].multiply(df3["Percentage"], axis="index")/100).round(1)
df3