在保持顺序的同时将循环索引添加到 pandas 多索引数据帧

Add recurring index to pandas multi indexed dataframe while keeping the order

我想向下面的数据框添加一个名为 new_col 的新列,它将包含它在最后一个索引中的条目数(同时保持顺序或对它们进行排序,以便它们按每个子组的更新时间排序)。结果应如下所示 new_col.

                                             UPDATE_TIME             new_col  
BOOK_NAME BUSINESS_DATE      MEASURE_DEF_ID                  
144       02-NOV-16 12:00:00 PNL            02-NOV-16 05:30:24       1
                                            03-NOV-16 05:30:29       2
                                            04-NOV-16 04:38:46       3
                             RISK           02-NOV-16 09:32:26       1
                                            03-NOV-16 09:31:49       2
                                            03-NOV-16 11:08:17       3

我觉得你需要set_index:

print (df.set_index('new_col', append=True))
                                                            UPDATE_TIME
BOOK_NAME BUSINESS_DATE      MEASURE_DEF_ID new_col                    
144       02-NOV-16 12:00:00 PNL            1        02-NOV-16 05:30:24
                                            2        03-NOV-16 05:30:29
                                            3        04-NOV-16 04:38:46
                             RISK           1        02-NOV-16 09:32:26
                                            2        03-NOV-16 09:31:49
                                            3        03-NOV-16 11:08:17

您需要 cumcount 才能为 index 的最后一关创建 Series

print (df.set_index(df.groupby(level=[0,1,2]).cumcount() + 1, append=True))