将pandas groupby对象转换为数据帧列表

Dav*_*sby 6 python pandas

假设我有以下数据帧,并希望按ys分组:

   xs  ys
0   0   0
1   1   0
2   2   1
3   3   1
Run Code Online (Sandbox Code Playgroud)

我可以通过跑步来做到这一点

grouped = df.groupby('ys')
Run Code Online (Sandbox Code Playgroud)

我可以很好地遍历这个新的groupby对象,但我想要一个group在以下循环中访问的数据帧列表:

for name, group in grouped:
    do_something(group)
Run Code Online (Sandbox Code Playgroud)

这可能吗?

jua*_*aga 11

当然,只是迭代群体!

>>> import pandas as pd, numpy as np
>>> df = pd.DataFrame(dict(xs=list(range(4)), ys=[0,0,1,1]))
>>> df
   xs  ys
0   0   0
1   1   0
2   2   1
3   3   1
>>> grouped = df.groupby('ys')
>>> dataframes = [group for _, group in grouped]
>>> dataframes
[   xs  ys
0   0   0
1   1   0,    xs  ys
2   2   1
3   3   1]
>>>
Run Code Online (Sandbox Code Playgroud)