gpt4 book ai didi

python - 如何找到pandas中多列的非零中位数/平均值?

转载 作者:行者123 更新时间:2023-12-01 03:45:22 30 4
gpt4 key购买 nike

我有一长串列,我想一次性计算非零中位数、平均值和标准差。我不能只删除基于 1 列的 0 行,因为同一列中另一列的值可能不是 0。

下面是我目前的代码,用于计算中位数、平均值等,包括零。

    agg_list_oper={'ABC1':[max,np.std,np.mean,np.median],
'ABC2':[max,np.std,np.mean,np.median],
'ABC3':[max,np.std,np.mean,np.median],
'ABC4':[max,np.std,np.mean,np.median],
.....
.....
.....
}

df=df_tmp.groupby(['id']).agg(agg_list_oper).reset_index()

我知道我可以编写带有循环的长代码来一次处理一列。有没有办法在 pandas groupby.agg() 或其他一些函数中优雅地执行此操作?

最佳答案

您可以暂时用 NaN 替换 0。然后,pandas 在计算中位数时将忽略 NaN。

df_tmp.replace(0, np.nan).groupby(['id']).agg(agg_list_oper).reset_index()

关于python - 如何找到pandas中多列的非零中位数/平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39016017/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com