python pandas 双聚合函数与 nth(0)

问题描述 投票:0回答:1

以下 pandas 聚合:

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

r = df.groupby('a').agg({
    'b' : 'mean',
    'c' : 'nth(0)',
    })

显然给出:

AttributeError: 'SeriesGroupBy' object has no attribute 'nth(0)'

(我会为此使用

'first'
,但它给出第一个非空值,我想包含它们)。

那么,如何将

nth
上的
c
聚合函数与
mean
上的
b
一起使用呢?

我知道这可行,但不太好:

df.groupby('a').agg({
    'b' : 'mean',
    'c' : lambda s:s.iloc[0],
    })
python pandas group-by
1个回答
0
投票

您可以使用

first
代替
nth(0)

r = df.groupby('a').agg({
    'b' : 'mean',
    'c' : 'first',
    })

输出:

     b    c
a          
1  2.5  6.0
© www.soinside.com 2019 - 2024. All rights reserved.