gpt4 book ai didi

python - 迭代一列中的项目,同时引用另一列中的标签

转载 作者:太空宇宙 更新时间:2023-11-03 21:01:17 25 4
gpt4 key购买 nike

假设我管理着许多股票经纪账户,每个账户都有不同类型的股票。我正在尝试编写一些代码来执行压力测试。

我想做的是,我有 2 个数据框:

帐户信息(数据框):

account = {'account':['1', '1', '1', '2', '2'], 'Stock type':['A', 'A', 'B', 'B', 'C'], 'share value' = '100', '150', '200', '175', '85']}

压力测试场景(数据框):

test = {'stock type':['A', 'B', 'C', 'D'], 'stress shock':['0.8', '0.7', '0.75', 0.6']}

鉴于这两个数据框,我想计算每个帐户在压力冲击后的股票值(value)是多少。

即对于账户#1,冲击后值(value) = 100*0.8 + 150*0.8 + 200*0.7 = 340

我尝试了一些基本的 for 循环,但我的 jupyter 笔记本在运行后很快就会崩溃(内存不足)。

shocked = []
for i in range(len(account)):
for j in range(len(test)):
if account.loc[i,'Stock type'] == test.loc[j,'stock type']:
shocked.append(account.loc[i,'share value']*test.loc[j, 'stock type']

最佳答案

我们可以首先进行合并以将两个数据帧的数据放在一起。然后我们计算冲击后值,最后得到每个账户总和:

merge = account.merge(test, on='Stock type')

merge['after_stress_shock'] = pd.to_numeric(merge['share value']) * pd.to_numeric(merge['stress shock'])

merge.groupby('account')['after_stress_shock'].sum()

account
1 340.00
2 186.25
Name: after_stress_shock, dtype: float64

注意我使用了pandas.to_numeric因为您的值是 string 类型。

关于python - 迭代一列中的项目,同时引用另一列中的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55691438/

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