首页 > 解决方案 > 为什么 Pandas df.mode() 在实际模态值之前返回零?

问题描述

当我在下面的数据帧上运行 df.mode() 时,我在预期输出之前得到一个前导零。这是为什么?

df

sample       1   2   3   4   5   6   7   8   9   10
zone run                                                          
2    5      14   12  22  23  24  22  23  22  23  23 

print(df.iloc[:,3:10].mode(axis=1)))

           0
zone run    
2    5    23

期待

zone run    
2    5    23

标签: pandasmode

解决方案


我的想法是,df.mode返回一个数据框。默认情况下,如果没有给出列值,数据框会将索引分配为列名。在这种情况下,0分配,因为这是 pandas/python 开始计数的方式。因为它是一个数据框,所以更改列名(在这种情况下是索引)的唯一方法是应用该.rename(columnn)方法。因此,要获得您需要的东西,您将不得不这样做;

df1.iloc[:,3:10].agg('mode', axis=1).reset_index().rename(columns={0:''})

   zone run 
0   2    5   23

推荐阅读