两个系列之间的交互循环

2024-09-27 21:26:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个系列,一个是关于公司股票在多个交易所的交易量(很多股票在所有交易所交易)。另一个系列是每只股票的标准差(每家公司,无论它们在哪个交易所交易)。现在,我一直在尝试创建一个循环,用第二个系列中的组合标准偏差来划分各个股票(在第一个系列中)的数量。我做了如下循环:

#所有交易所每只股票成交量的标准偏差(工作正常)

stdev_volume = Main_df_retvol.groupby(['pair_name'], sort=False)['volume'].std()

#循环将体积除以相应库存体积的标准偏差。(循环不工作)

df_vol_std = []
for i in range(len(stdev_volume)):
    if stdev_volume[i]['pair_name'] == Main_df_retvol['pair_name']:
        df_vol_std = Main_df_retvol['vol'].divide(other = stdev_volume['Volume'])
print(df_vol_std)

任何帮助都将不胜感激


Tags: namedfmain体积交易股票stdvolume
1条回答
网友
1楼 · 发布于 2024-09-27 21:26:48

让我们把它分解一下。。。 获取索引以选择stdev中的每一行

for i in range(len(stdev_volume)):

将stdev中的行/列中的标量值与main中的完整列进行比较(这将引发异常)

if stdev_volume[i]['pair_name'] == Main_df_retvol['pair_name']:

并将已初始化为列表的变量作为一个变量,用完整的列/列划分覆盖(不管预期的行是什么,并且只保留循环中最后一次的值)

df_vol_std = Main_df_retvol['vol'].divide(other = stdev_volume['Volume'])

因此,我建议采用以下方式来代替该循环:

main.join(stdev, on='pair_name')

或者更进一步,当您构建stdev并将其作为列添加到main上时:

main = main.assign(stdev=
    main.groupby('pair_name').volume.transform('std'))
main = main.assign(volbystd=
    main.volume.div(main.stdev))

如果您提供数据样本,我们可以测试这是否有效

相关问题 更多 >

    热门问题