我是 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 加利福尼亚州 30/05/2022
2022 年 5 月 29 日 2123.8 2331.1 2523.4 加利福尼亚州 2022 年 5 月 30 日
2022 年 5 月 6 日 2136.5 2340.5 2553.8 加利福尼亚州 30/05/2022
2022 年 6 月 12 日 2148.466667 2353.433333 2562.266667 2022 年 5 月 30 日
2022 年 6 月 19 日 2160.616667 2365.483333 2576.216667 加利福尼亚州 30/05/2022
2022 年 6 月 26 日 2172.766667 2377.533333 2590.166667 加利福尼亚州 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 加利福尼亚州 30/05/2022
西 22/05/2022 447.8 491.1 535.5 加利福尼亚州 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 加利福尼亚州 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 加利福尼亚州 30/05/2022
西 5/06/2022 452.9 496.2 541.4 加利福尼亚州 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。提前感谢任何帮助。
好吧,让我们这样做;)
1.因为我们没有公共键(column),所以不能合并它们,所以诀窍是让两个DF大小相同。
1.1将 df1 设为 30 行,重复相同的行块:
df1 = pd.concat([df1]*6, ignore_index=True)
1.2index
到此时重复 df2 到 30 行:
df2 = df2.loc[df2.index.repeat(5)].reset_index(drop=True)
2.现在我们有 2 个大小相同(长度)的 dfs,我们可以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
如果它解决了您的问题,请接受✅这个答案:)
否则在评论中提及我(使用@),同时告诉我出了什么问题;)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句