假设我有一个 DataFrame,它的子索引结构如下所示,带有“date”、“tenor”、“mat”和“strike”,并且要观察的字段存储在“vol”列中:
date tenor mat strike vol
20120903 3m 1y 0.25 52.
0.50 51.
1.00 49.
20120903 3m 5y 0.25 32.
0.50 55.
1.00 23.
20120903 3m 10y 0.25 65.
0.50 55.
1.00 19.
20120904 3m 1y 0.25 32.
0.50 57.
1.00 44.
20120904 3m 5y 0.25 54.
0.50 50.
1.00 69.
20120904 3m 10y 0.25 42.
0.50 81.
1.00 99.
假设我想通过获取一个新的数据帧来重组这些数据,该数据帧具有子索引“日期”+“男高音”,并且“值”由原始数据帧中的“垫”、“罢工”和“卷”组成的 3d 数组给出像这样的方式:
date tenor values
20120903 3m [[1y,5y,10y],[0.25, 0.50, 1.00], [52., 51., 49.],
[32., 55., 23.],
[65., 55., 19.]]
20120904 3m [[1y,5y,10y],[0.25, 0.50, 1.00], [32., 57., 44.],
[54., 50., 69.],
[42., 81., 99.]]
我尝试了“unstack”、“groupby”和“pivot”的各种尝试,但没有成功。我只能通过使用大量 python 矢量操作来实现我的目标,但这是一个缓慢且低效的过程。为了获得相同的结果,是否有任何特定的、更有效的 pandas 程序?我迷路了……谢谢你的帮助,毛里齐奥