首页 > 解决方案 > 在列透视期间保留最后一个重复索引?

问题描述

keep='last'实现当前不支持的参数意图的 Pandasic 方式是什么pivot,例如,以下内容DataFrame

df.pivot(columns='a', keep='last')

鉴于此数据框:

df = pd.DataFrame([{'i':0 if random.random()<.5 else random.random(),'a':['abc','def','ghi','jkl'][int(random.random()*4)],'b':random.random(),'c':random.random()} for _ in range(20)])
df.i = df.i.cumsum()
df = df.set_index('i')

            a         b         c
i                                
0.000000  ghi  0.857628  0.856835
0.011049  abc  0.000408  0.189136
0.111914  ghi  0.785439  0.716488
0.111914  abc  0.168402  0.177056
0.111914  ghi  0.757416  0.763886
0.111914  ghi  0.807576  0.339000
0.574349  abc  0.508411  0.386711
0.574349  abc  0.347667  0.511798
0.650300  def  0.428700  0.176682
0.947907  def  0.308117  0.413609
1.503684  jkl  0.020903  0.974225
1.503684  jkl  0.836817  0.609914
1.659698  jkl  0.002263  0.508951
1.673570  jkl  0.552632  0.208657
1.673570  ghi  0.424978  0.573951
2.497983  jkl  0.657852  0.896766
2.994696  jkl  0.768899  0.988074
3.165982  def  0.848905  0.803382
3.480295  jkl  0.539529  0.772906
3.548527  abc  0.534413  0.974576

我想在执行以下操作时只保留最后一个重复的索引条目:

df.pivot(columns='a')

请注意,例如,对于 ' ' 和 ' ' 的所有四个预期列i=0.111914都有值,它们必须与 common index 共享一行。MultiIndexghiabci=0.111914

标签: pandasindexingpivot

解决方案


推荐阅读