pandas如何找到每一行中出现最频繁的值?

14

如何在数据框中找到每行最常见的值?例如:

In [14]: df
Out[14]:
   a  b  c
0  2  3  3
1  1  1  2
2  7  7  8

返回:[3,1,7]

1个回答

29

尝试使用.mode()方法:

In [88]: df
Out[88]:
   a  b  c
0  2  3  3
1  1  1  2
2  7  7  8

In [89]: df.mode(axis=1)
Out[89]:
   0
0  3
1  1
2  7

来自文档:

获取沿所选轴每个元素的模式。对于每个标签,添加一个模式行,用NaN填充间隙。

请注意,对于所选轴,可能会返回多个值(当多个项共享最大频率时),这就是返回数据帧的原因。如果要使用数据帧df中的众数填充缺失值,可以执行以下操作:df.fillna(df.mode().iloc[0])


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接