如何为Pandas多层索引DataFrame添加组内递增索引列?
解决方案
你可以通过groupby结合cumcount()方法快速实现需求,具体代码如下:
df['index'] = df.groupby(level=[0, 1]).cumcount() + 1
执行后得到的DataFrame结构与你期望的一致:
foo index id_1 id_2 1 1 0.1 1 1 0.1 2 1 0.1 3 2 2 0.2 1 2 0.2 2 2 0.2 3
关键说明
level=[0,1]指定按多级索引的前两级(id_1和id_2)分组,适配当前的索引结构cumcount()会为每个分组内的行分配从0开始的连续整数,加1后就得到从1起始的递增序列
内容的提问来源于stack exchange,提问作者ajrlewis
相关产品推荐
相关产品推荐

