我可以从groupby中检索所有结果吗?

时间:2016-10-03 14:14:26

标签: pandas

假设我将数据分组为

df.groupby(['a','b','c'])

get_group中的每个群组都有abc的特定值是否有办法?

2 个答案:

答案 0 :(得分:0)

您认为在自定义函数中选择列ab吗?

df = pd.DataFrame({'a':[1,2,3],
                   'b':[4,5,6],
                   'c':[7,8,9],
                   'D':[1,3,5],
                   'E':[5,3,6]})

print (df)
   D  E  a  b  c
0  1  5  1  4  7
1  3  3  2  5  8
2  5  6  3  6  9


def f(x):
#    print (x)
    print (x[['a','b']])
    return x[['a','b']]

print (df.groupby(['a','b','c']).apply(f))

   a  b
0  1  4
   a  b
0  1  4
   a  b
1  2  5
   a  b
2  3  6
   a  b


   a  b
0  1  4
1  2  5
2  3  6

或许你需要filter

print (df.groupby(['a','b','c']).filter(lambda x: (x.b == 4) & (x.c == 7)))
   D  E  a  b  c
0  1  5  1  4  7

答案 1 :(得分:0)

[name for name,group in df.groupby(['a', 'b', 'c'])]