我有一个多索引pandas数据帧:
SHOPPING_COUNT
CLIENT YEAR MONTH
1000063 2013 12 9
2014 1 9
2 7
3 9
2015 4 6
5 5
6 9
1001327 2014 5 1
6 1
2015 2 7
3 1
4 3
1001399 2013 8 1
我想知道每个客户的第一个索引,按0级排序。 我的意思是,我想得到:
1000063 2013 12
1001327 2014 5
1001399 2013 8
答案 0 :(得分:1)
让df
成为您的数据框,您可以执行以下操作:
df = df.groupby(level=0).apply(lambda x: x.iloc[0:1])
df.index = df.index.droplevel(0)
实际上这可能更容易做到,但我认为这种方法有效。
答案 1 :(得分:0)
它不是很有程序性,但如果你看一下结果:
client = 1000063
df.loc[client].index
然后以下内容将起作用:
year = df.loc[client].index.levels[0][df.loc[client].index.labels[0][0]]
month = df.loc[client].index.levels[1][df.loc[client].index.labels[1][0]]