繁体   English   中英

Pandas mutliIndex 按组排序

[英]Pandas mutliIndex sort by group

我想将值保持相同的顺序(降序),但我无法按索引级别 0 对以下帧进行分组。 代码为 0512 的块应该按代码降序排列在一起。

code   product                                        count
0510  あたたか新潟こしひかり 5kg                 1
0511  キッコ−マン 味わいリッチ減塩しょうゆ 450ml       1
      7プレミアム 国産果汁使用ゆずぽん酢 200ml        1
0512  キリン 生茶 525ml                    1
      キリンレモン 450ml                    1
      コカ・コーラ い・ろ・は・す もも 555ML         1
      サントリー なっちゃん オレンジ 425ml          1
      サントリー プレミアムボス ブラック 490ml        2
      サントリー 天然水南アルプス 2L ケース           1
      サントリー 天然水南アルプス 2L ペット           1
      サントリー 朝摘みオレンジ&天然水 540ml         1
      大塚 ポカリスエット 900ML ペット            1
      森永 inゼリー エネルギーレモン 180g          1
      綾鷹 525MLペット                     2
      7プレミアム パイナップルサイダー 500ml         1
      7プレミアム フルーツオ・レ 500ml            1
      GAクラフトマン ダークモカ 440ml            1
      UCC 職人の珈琲 無糖 930ML ペット          1
0513  アサヒ オフ 500ml×6                  1
      キリン 本麒麟 500ml                   1
      万上 濃厚熟成本みりん 1L                  1
      東村山純米酒 720ml                    1
0514  ブルボン プチポテトコンソメ味 45g             1
      ロッテ ガーナローストミルク 50g              1
      ロッテ グリーンガム 9枚                   1

我的代码

data = df.groupby(['code','product']).size().reset_index(name='counts').set_index(['code','product'])
data1 = data.sort_values(by=['counts','code'], ascending=False).groupby(['product','code']).sum()

编辑:

我可以看到第二个 groupby 将代码放在一起,但把每个代码的计数降序弄乱了,正如我们在 0512 中看到的那样。

您应该将列表传递给第二行中的升序参数,如下所示:

data1 = data.sort_values(by=['counts','code'], ascending=[False,False]).groupby(['product','code']).sum()

否则,它将采用默认值,即“代码”列的 True 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM