首页 > 解决方案 > 组合 GroupBy 对象(不是输出,而是实际对象)

问题描述

诚然,这可能不是一个常见的情况。本质上,我想知道是否可以将它们放入其中groups_1=df.groupby('something'),以便我可以迭代一个可迭代的组对象,而不是分别迭代这两个对象。这是一个例子:groups_2=df.groupby('something_else')groups = [groups_1,groups_2]

# create data frame    
df = pd.DataFrame({'A':np.random.random(20), 'B':np.random.random(20), 'date':pd.date_range("2021-05-01",periods = 20, freq='2W')})

# groupby at two separate frequencies
groups_1 = df.loc[df.date<'2021-11-01',:].groupby(pd.Grouper(key='date', freq='M'))
groups_2 = df.loc[df.date>='2021-11-01',:].groupby(pd.Grouper(key='date', freq='2W'))

鉴于上述情况,我想做类似的事情:

groups = some_concat_function([groups_1,groups_2])

for label, group in groups:
        # do something here

标签: pythonpandaspandas-groupby

解决方案


我认为你可以使用itertools.chain

from itertools import chain

groups = chain(groups_1, groups_2)
...

或者

from itertools import chain

groups = chain.from_iterable([groups_1, groups_2])
...

推荐阅读