Python 将不同的聚合应用于GroupBy的组

Python 将不同的聚合应用于GroupBy的组,python,pandas,Python,Pandas,我有一个像 A B C D one 2 10.0 0 11 two 5 NaN NaN 8 和我一起做了一次群比 df.groupby(np.array(['min', 'max', 'min', 'max']), axis=1) 现在我想用不同的函数聚合这些组。“最小”组应与.sum(axis=1)聚合,而“最大”组应与.sum(axis=1,skipna=False)聚合。 期望的输出是 min max one 2

我有一个像

     A     B    C   D
one  2  10.0    0  11
two  5   NaN  NaN   8
和我一起做了一次群比

df.groupby(np.array(['min', 'max', 'min', 'max']), axis=1)
现在我想用不同的函数聚合这些组。“最小”组应与
.sum(axis=1)
聚合,而“最大”组应与
.sum(axis=1,skipna=False)
聚合。 期望的输出是

     min  max
one    2   21
two    5  NaN

有什么内置方法可以做到这一点吗?

我相信您需要自定义函数,因为它不是内置的

def f(x):
    if x.name == 'min':
        return x.sum(axis=1)
    elif x.name == 'max':
        return x.sum(axis=1, skipna=False)

df = df.groupby(['min', 'max', 'min', 'max'], axis=1).apply(f)
print (df)
      max  min
one  21.0  2.0
two   NaN  5.0

df.groupby(['min','max','min','max'],axis=1)正确吗?
对我有用,但我会澄清它。