我有一个由400列组成的数据帧,每个列都有单独的标题。每个标头都是掉期衍生品期货合约,每天的成交量在每一行。
我想知道是否有可能将合同名称的不同列表/分组另存为变量,然后让一个函数每天执行每个分组的总成交量。然后,我可以在以后编辑分组名称。每天要汇总的这些分组中的一些可以有多达90个不同的合约。我已经创建了一个Excel文件,用于列出前一个月卷、后一个月卷、总卷所有合同等的合同名称
例如,
分组1:前一个月未平仓权益将由“2022年3月合约”、“2021年9月合约”、“2021年12月合约”组成,每天汇总。
分组2:前几个月未平仓权益为“2021年6月合约”、“2021年3月合约”等,每天汇总。每天,此.csv都会添加一行,其中包含400个合约的值。
任何方向都会非常感谢。我一直在尝试寻找一个创建标题值的变量的示例,我可以在旁边更改这些值,然后对其求和。
编辑* Here is a picture of the dataframe
我希望在程序外部创建一个我可以引用的变量,该变量包含不同分组的列表。例如,下面是一个电子表格的片段。我希望这些分组是一个变量或列表,当它每季度变化时,我可以编辑它。
发布于 2021-10-14 04:07:01
最好不要猜测你的数据帧是什么样子的,所以如果你可以在下面的例子不正确的情况下发布一个缩小的版本,这将是有帮助的。
任何人,如果您的df只是日期、卷和头,这个示例获取头分组,并根据列名对数据帧进行切片,然后按天对卷进行求和。从这里,您可以知道如何编写该代码以使其更加出色,或者根据需要调整代码
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
https://stackoverflow.com/questions/69564601
复制相似问题