简体   繁体   中英

how to select a group from groupby dataframe using pandas

I have a dataframe with multilevel index (company, year) that grouped by mean, looks like this:

company  year  mean salary
ABC      2018     3000
         2019     3400
LOL      2018     1200
         2019     3500

I want to select the data belongs to "LOL", my desired outcome would be:

company  year  mean salary
LOL      2018     1200
         2019     3500

Is there a way I can only select a certain group? I tried to use.filter function on dataframe but I was only able to apply it to rows such as (lambda x: x > 1000) but not for index value.

Any advice will be appreciated!

Use DataFrame.xs with drop_level=False for avoid removed first level:

df1 = df.xs('LOL', drop_level=False)

Or filter by first level with Index.get_level_values :

df1 = df[df.index.get_level_values(0) == 'LOL']

print (df1)
              mean salary
company year             
LOL     2018         1200
        2019         3500

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM