pandas pivot函数中的索引项重复

2024-10-01 13:40:46 发布

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

我正在尝试创建一个新的数据帧,它是从这个数据帧中派生出来的:

                 dataframe name      date tenor mat strike      capvol
      0   EUR CapFloor Volat_3m  20120903    3m  1y   0.25  152.202160
      1   EUR CapFloor Volat_3m  20120903    3m  1y   0.50  151.969370
      2   EUR CapFloor Volat_3m  20120903    3m  1y      1  149.266970
      3   EUR CapFloor Volat_3m  20120903    3m  1y   1.50  152.940750
      4   EUR CapFloor Volat_3m  20120903    3m  1y      2  157.229350
      5   EUR CapFloor Volat_3m  20120903    3m  1y   2.25  159.325890

我的目标是按日期、mat和strike对数据进行分组(我可以删除'3m'和'dataframe name'列,因为它们对所有数据都是通用的)。 我试着命令:

^{pr2}$

但是得到这个错误:

      'Index contains duplicate entries, cannot reshape'

虽然我检查了我的数据,并没有包含重复的行。在

有谁能帮我解决这个问题,或者提出一个替代pivot函数的方法?在

谢谢你的帮助


Tags: 数据name命令目标dataframedate错误eur
1条回答
网友
1楼 · 发布于 2024-10-01 13:40:46

也许set_index就是你想要的?pivot是一个整形操作:

In [4]: frame.set_index(['date', 'mat', 'strike'])
Out[4]: 
                            dataframe name tenor     capvol
date     mat strike                                        
20120903 1y  0.25    EUR CapFloor Volat_3m    3m  152.20216
             0.50    EUR CapFloor Volat_3m    3m  151.96937
             1.00    EUR CapFloor Volat_3m    3m  149.26697
             1.50    EUR CapFloor Volat_3m    3m  152.94075
             2.00    EUR CapFloor Volat_3m    3m  157.22935
             2.25    EUR CapFloor Volat_3m    3m  159.32589


In [7]: df.capvol.unstack('mat')
Out[7]: 
mat                     1y
date     strike           
20120903 0.25    152.20216
         0.50    151.96937
         1.00    149.26697
         1.50    152.94075
         2.00    157.22935
         2.25    159.32589

相关问题 更多 >