在Pandas中,如何基于groupby标准获得多个子集数据帧?



例如;我有一个像这样的数据帧

ID v1 v2 v3
1   0  0  1
1   1  1  1
1   1  0  1
1   1  1  0
2   0  1  1
2   0  0  1
2   1  1  0
3   1  0  1
3   1  1  1

我感兴趣的是获得一个数据帧列表,这样每个数据帧都是基于groupby['ID']的原始子集

查找某项返回数据帧result的列表

result[0]
ID v1 v2 v3
1   0  0  1
1   1  1  1
1   1  0  1
1   1  1  0
result[1]
ID v1 v2 v3
2   0  1  1
2   0  0  1
2   1  1  0
result[2]
ID v1 v2 v3
3   1  0  1
3   1  1  1

现在我要做的是通过ID

进行循环迭代
for id in df['ID']:
result.append(df[df['ID'] == id])

但是可能有很多ID,这不是很有效(注意每个ID可能有不同数量的数据点)。有什么想法吗?由于

查看

d = dict([*df.groupby('ID')])
d[1]
Out[160]: 
ID  v1  v2  v3
0   1   0   0   1
1   1   1   1   1
2   1   1   0   1
3   1   1   1   0

最新更新