首页 > 解决方案 > 遍历 Pandas groupby 对象的子集

问题描述

我有一个 Pandas groupby 对象,我想遍历第一n组。我试过了:

import pandas as pd
df = pd.DataFrame({'A':['a','a','a','b','b','c','c','c','c','d','d'],
                   'B':[1,2,3,4,5,6,7,8,9,10,11]})

df_grouped = df.groupby('A')
i = 0
n = 2 # for instance
for name, group in df_grouped:
    #DO SOMETHING
    if i == n: 
        break
    i += 1 

group_list = list(df_grouped.groups.keys())[:n]
for name in group_list:
    group = df_grouped.get_group(name)
    #DO SOMETHING

但我想知道是否有更优雅/pythonic的方式来做到这一点?

我的实际 groupby 中有 1000 个组,我只想对一个子集执行操作,只是为了对整个数据有一个印象。

标签: pythonpandaspandas-groupby

解决方案


您可以使用原始df进行过滤,然后我们可以完成您需要做的所有其他事情

yourdf=df[df.groupby('A').ngroup()<=1]

yourdf=df[pd.factorize(df.A)[0]<=1]

推荐阅读