gpt4 book ai didi

python - 如何使用两个单独的数据框在 Pandas 中执行 SumProduct()

转载 作者:行者123 更新时间:2023-12-01 07:51:19 25 4
gpt4 key购买 nike

目标:创建具有可比较的 SUMPRODUCT 的输出。 pandas 中的方法

描述:我需要使用两个数据框(df 和 df_2_copy)。我正在尝试将 1-mo CD、3-mo CD、6-mo CD 分别乘以 df 中各自的价格(2000,3000,5000)后添加。

import pandas as pd

data = [['1-mo CDs', 1.0, 1,2000, '1, 2, 3, 4, 5, and 6'],
['3-mo CDs', 4.0 ,3 ,3000,'1 and 4'],
['6-mo CDs',9.0 ,6, 5000,'1']]
df = pd.DataFrame(data,columns=['Scenario','Yield', 'Term','Price', 'Purchase CDs in months'])
df

data_2 = [['Init Cash', 400000, 325000,335000,355000,275000,225000,240000],
['Matur CDs',0,0,0,0,0,0,0],
['Interest',0,0,0,0,0,0,0],
['1-mo CDs',0,0,0,0,0,0,0],
['3-mo CDs',0,0,0,0,0,0,0],
['6-mo CDs',0,0,0,0,0,0,0],
['Cash Uses',75000,-10000,-20000,80000,50000,-15000,60000],
['End Cash', 0,0,0,0,0,0,0]]

# set table
df_2 = pd.DataFrame(data_2,columns=['Month', 'Month 1', 'Month 2', 'Month 3', 'Month 4', 'Month 5', 'Month 6', 'End'])
df_2_copy = df_2.copy()

最终,我想将 SUMPRODUCT 的输出放置在 df_2_copy.iloc[7] 位置。

如有任何帮助,我们将不胜感激。

最佳答案

您可以通过以下方式完成:

生成 df3 - 来自 df_2 的特定月份值(Month)对于 df 中具有对应行的行,列更改为索引:

df3 = df_2.drop(columns='End').set_index('Month')\
.query('index in @df.Scenario')

对于我的测试数据,月份 n 值发生变化,结果是:

          Month 1  Month 2  Month 3  Month 4  Month 5  Month 6
Month
1-mo CDs 1 2 0 2 2 0
3-mo CDs 1 0 3 0 4 0
6-mo CDs 1 1 0 2 0 0

然后生成df4 - df,其中场景更改为索引,仅限于 价格 列,但仍作为 DataFrame:

df4 = df.set_index('Scenario').Price.to_frame()

结果是:

          Price
Scenario
1-mo CDs 2000
3-mo CDs 3000
6-mo CDs 5000

然后计算总和:

sums = (df3.values * df4.values).sum(axis=0)

结果是:

[10000  9000  9000 14000 16000     0]

最后一步是将这些数字写入目标位置:

df_2.iloc[7, 1:7] = sums

关于python - 如何使用两个单独的数据框在 Pandas 中执行 SumProduct(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56202390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com