熊猫:如何基于函数将get_group()与groupby()结合使用

时间:2018-08-09 07:48:18

标签: python pandas pandas-groupby

我改编自Pandas doc的一个例子:

df3 = pd.DataFrame({'X' : ['A', 'B', 'A', 'B'], 'Y' : [1, 4, 3, 2]})

df3.groupby(['X', 'Y']).get_group(('A', 1))
    X   Y
0   A   1

上面的代码工作正常。

现在,我想根据函数的值对样本进行分组:

def func(df, index):
    return (df['X'].loc[index], df['Y'].loc[index] % 2)

分组有效:

for name, df in df3.groupby(by=lambda index: func(df3, index), sort=False):
    print(name)
    print(df)

('A', 1)
   X  Y
0  A  1
2  A  3

('B', 0)
   X  Y
1  B  4
3  B  2

但是get_group()返回错误:

df3.groupby(by=lambda index: func(df3, index), sort=False).get_group(('A', 1))
  

NotImplementedError:未为MultiIndex定义isna

我可以遍历groupby并将键/值保存在字典中以按名称访问组,但这在内存方面是低效的。

0 个答案:

没有答案