Python pandas - filter rows after groupby

前端 未结 4 1975
天涯浪人
天涯浪人 2020-11-27 14:00

For example I have following table:

index,A,B
0,0,0
1,0,8
2,0,8
3,1,0
4,1,5

After grouping by A:

0:
index,A,B
         


        
4条回答
  •  时光说笑
    2020-11-27 14:21

    All of these answers are good but I wanted the following:

    (DataframeGroupby object) --> filter some rows out --> (DataframeGroupby object)
    

    Shrug, it appears that is harder and more interesting than I expected. So this one liner accomplishes what I wanted but it's probably not the most efficient way :)

    gdf.apply(lambda g: g[g['team'] == 'A']).reset_index(drop=True).groupby(gdf.grouper.names) 
    

    Working Code Example:

    import pandas as pd
    
    def print_groups(gdf): 
        for name, g in gdf: 
            print('\n'+name) 
            print(g)
    
    df = pd.DataFrame({'name': ['sue', 'jim', 'ted', 'moe'],
                       'team': ['A', 'A', 'B', 'B'], 
                       'fav_food': ['tacos', 'steak', 'tacos', 'steak']})                               
    
    gdf = df.groupby('fav_food')                                                                                                                                           
    print_groups(gdf)                                                                                                                                                      
    
        steak
            name team fav_food
        1  jim    A    steak
        3  moe    B    steak
    
        tacos
            name team fav_food
        0  sue    A    tacos
        2  ted    B    tacos
    
    fgdf = gdf.apply(lambda g: g[g['team'] == 'A']).reset_index(drop=True).groupby(gdf.grouper.names)                                                                      
    print_groups(fgdf)                                                                                                                                                     
    
        steak
          name team fav_food
        0  jim    A    steak
    
        tacos
          name team fav_food
        1  sue    A    tacos
    

提交回复
热议问题