我有一个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个组,我只想对一个子集执行一个操作,只是为了获得整个数据的印象。
答案 0 :(得分:1)
您可以使用原始df进行过滤,然后我们可以做您需要做的所有其他事情
yourdf=df[df.groupby('A').ngroup()<=1]
yourdf=df[pd.factorize(df.A)[0]<=1]