可以创建由头值组成的变量,也可以通过pandas进行总结吗?



我有一个由400列组成的数据框架,每个列都有单独的标题。每个标头是一个互换衍生品期货合约,每一行每天的成交量。

我想知道是否有可能将合同名称保存为变量的不同列表/分组,然后有一个函数执行每天每个分组的总量。然后,我可以在以后编辑分组名称。其中一些每天要总结的分组可能有多达90种不同的合同。我已经创建了一个Excel文件,列出了前一个月交易量、后一个月交易量、总交易量、所有合同等合同的名称

例如,

第1组:前一个月未平仓合约将由[' 2022年3月合约'],[' 2021年9月合约'],[' 2021年12月合约']组成,每天汇总。

分组2:回个月未平仓("2021年6月合同"),("2021年3月合同"),每天总结等。每天,此.csv添加一行,其中包含400个合同中的每个合同的值。

任何指示将不胜感激。我一直在试图找到一个创建头值变量的例子,我可以在一边改变,然后再求和。

编辑*这是数据框

的图片我希望在程序之外创建一个变量,我可以引用包含不同分组列表的程序。例如,下面是一个电子表格的片段。我希望这些分组是一个变量或列表,我可以编辑,因为它每季度变化。

分组示例片段,只做了几个合同,但将有30多个合同的长列表要求和

最好不要猜测你的数据框架是什么样子的,所以如果你能在下面的例子不正确的情况下发布一个缩小的版本,那将会很有帮助。

无论如何,如果您的df只是日期、卷和标题,那么本例将采用标题分组,并根据列名对数据框架进行切片,并按天对卷求和。从这里你可以弄清楚如何编写excel或根据需要调整代码

df = pd.DataFrame([range(1,9),range(11,19),range(21,29),range(31,39),range(41,49),range(51,59),range(61,69)], 
columns=['Contract 1','Contract 2','Contract 3','Contract 4','Contract 5','Contract 6','Contract 7','Contract 8'],
index=pd.date_range(start='10/1/2021', periods=7))
group1 = ['Contract 1', 'Contract 2', 'Contract 3']
group2 = ['Contract 3', 'Contract 4', 'Contract 5','Contract 7', 'Contract 8']
group3 = ['Contract 1', 'Contract 8']
groups=[group1, group2, group3]
for g in groups:
print(df[g])
print(df[g].sum(axis=1))

输出
Contract 1  Contract 2  Contract 3
2021-10-01           1           2           3
2021-10-02          11          12          13
2021-10-03          21          22          23
2021-10-04          31          32          33
2021-10-05          41          42          43
2021-10-06          51          52          53
2021-10-07          61          62          63
2021-10-01      6
2021-10-02     36
2021-10-03     66
2021-10-04     96
2021-10-05    126
2021-10-06    156
2021-10-07    186
Freq: D, dtype: int64
Contract 3  Contract 4  Contract 5  Contract 7  Contract 8
2021-10-01           3           4           5           7           8
2021-10-02          13          14          15          17          18
2021-10-03          23          24          25          27          28
2021-10-04          33          34          35          37          38
2021-10-05          43          44          45          47          48
2021-10-06          53          54          55          57          58
2021-10-07          63          64          65          67          68
2021-10-01     27
2021-10-02     77
2021-10-03    127
2021-10-04    177
2021-10-05    227
2021-10-06    277
2021-10-07    327
Freq: D, dtype: int64
Contract 1  Contract 8
2021-10-01           1           8
2021-10-02          11          18
2021-10-03          21          28
2021-10-04          31          38
2021-10-05          41          48
2021-10-06          51          58
2021-10-07          61          68
2021-10-01      9
2021-10-02     29
2021-10-03     49
2021-10-04     69
2021-10-05     89
2021-10-06    109
2021-10-07    129

相关内容

  • 没有找到相关文章

最新更新