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()
在我从事的项目中,我被迫使用 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()