从级别获取多索引分组的第一个索引

时间:2016-01-29 12:57:01

标签: python pandas indexing

我有一个多索引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              

2 个答案:

答案 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]]