简体   繁体   English

如何 select 一组来自 groupby dataframe 使用 pandas

[英]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:我有一个 dataframe 具有按平均值分组的多级索引(公司,年份),如下所示:

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:我想 select 数据属于“LOL”,我想要的结果是:

company  year  mean salary
LOL      2018     1200
         2019     3500

Is there a way I can only select a certain group?有没有办法我只能 select 某个组? 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.我尝试在 dataframe 上使用.filter function 但我只能将其应用于诸如 (lambda x: x > 1000) 之类的行,但不能应用于索引值。

Any advice will be appreciated!任何建议将被认真考虑!

Use DataFrame.xs with drop_level=False for avoid removed first level:使用DataFrame.xsdrop_level=False以避免删除第一级:

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

Or filter by first level with Index.get_level_values :或使用Index.get_level_values按第一级过滤:

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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