2017-01-16 54 views
0

说我有以下数据框中的列表,并希望GROUPBY的伊苏:通过运行转换一个大熊猫GROUPBY对象dataframes

grouped = df.groupby('ys') 

我可以

xs ys 
0 0 0 
1 1 0 
2 2 1 
3 3 1 

我能做到这一点迭代遍历这个新的groupby对象,但是我想要一个在以下循环中由group访问的数据帧列表:

for name, group in grouped: 
    do_something(group) 

这可能吗?

+0

你想要一个由*组名*访问的列表吗?这不可能。你可能想要一个'dict'。 –

+0

不,我只是想要一个数据框的列表,不关心名称。刚刚意识到我的循环是错误的,现在应该改正 –

回答

4

当然,只是迭代组!

>>> 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] 
>>> 
+0

当然......在问题中几乎回答了我自己!感谢你的回答! –