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

时间:2016-08-18 10:36:46

标签: python pandas aggregate-functions median summarization

我有一长串的列,我想要计算非零中位数,平均值和& std一气呵成。我不能只删除基于1列的0行,因为同一列中另一列的值可能不是0。

以下是我目前的代码,它计算中位数,平均值等,包括零。

Table B
   0    1    2    3 
2123   31    4    1 

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

1 个答案:

答案 0 :(得分:2)

您可以暂时用NaN替换0。然后,在计算中位数时,大熊猫会忽略NaN。

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