熊猫:如何找到每行最常见的值?

Rob*_*988 8 python numpy dataframe pandas

如何找到数据帧每行的最频繁值?例如:

In [14]: df
Out[14]:
   a  b  c
0  2  3  3
1  1  1  2
2  7  7  8
Run Code Online (Sandbox Code Playgroud)

回报:[3,1,7]

Max*_*axU 18

尝试.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
Run Code Online (Sandbox Code Playgroud)

来自docs:

获取沿所选轴的每个元素的模式.为每个标签的每个模式添加一行,用nan填充空白.

请注意,可能会为所选轴返回多个值(当多个项共享最大频率时),这就是返回数据帧的原因.如果要使用数据框df中的模式来估算缺失值,可以这样做:df.fillna(df.mode().iloc [0])