Pandas 与 agg 一起使用的 groupby 没有 return 键列

Pandas groupby used with agg doesn't return key columns

在我从事的项目中,我被迫使用 Pandas 版本 1.1.5。 我正在尝试按操作进行分组,以便使用多个函数聚合变量:

import pandas as pd
import numpy as np

df = pd.DataFrame( { 
        "Name" : ["Alice", "Bob", "James", "Mallory", "Bob" , "Lucas", "Alice", "Bob", "James", "Mallory", "Bob" , "Lucas"] , 
        "Apples" : [22, 31, 35, 41, 27, 32, 64, 12, 59, 45, 65, 31] } )

apple_df = df.groupby('Name', as_index = False).agg(
    apple_avg = ('Apples', np.mean),
    apple_median = ('Apples', np.median),
    apple_count = ('Apples', np.count_nonzero)
)
apple_df

我期望 Name 列与其他聚合变量的结果如下:

但我得到以下信息:

此问题有任何已知错误和解决方法吗?

P.S。 Pandas 1.3.0 一切正常,但我不能在这个项目中使用它。

您可以尝试删除 as_index 参数并创建一个 .reset_index() 来代替:

apple_df = df.groupby('Name').agg(
    apple_avg = ('Apples', np.mean),
    apple_median = ('Apples', np.median),
    apple_count = ('Apples', np.count_nonzero)
).reset_index()