在保持顺序的同时将循环索引添加到 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))
我想向下面的数据框添加一个名为 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))