我有一长串的列,我想要计算非零中位数,平均值和& std一气呵成。我不能只删除基于1列的0行,因为同一列中另一列的值可能不是0。
以下是我目前的代码,它计算中位数,平均值等,包括零。
Table B
0 1 2 3
2123 31 4 1
我知道我可以用循环编写长代码来一次处理一列。 有没有办法在pandas groupby.agg()或其他一些函数中优雅地执行此操作?
答案 0 :(得分:2)
您可以暂时用NaN替换0。然后,在计算中位数时,大熊猫会忽略NaN。
df_tmp.replace(0, np.nan).groupby(['id']).agg(agg_list_oper).reset_index()