计算一行中出现次数最多的值 pandas 并用该出现次数最多的值创建一列

Count the most frequent values in a row pandas and make a column with that most frequent value

我有一个如下所示的数据框:

     a  b  c
0    3  3  3
1    3  3  3
2    3  3  3
3    3  3  3
4    2  3  2
5    3  3  3
6    1  2  1
7    2  3  2
8    0  0  0
9    0  1  0

我想计算每一行的频率并添加一个包含最大频率的列结果,如下所示:

     a  b  c result
0    3  3  3  3
1    3  3  3  3
2    3  3  3  3
3    3  3  3  3
4    2  3  2  2
5    3  3  3  3
6    1  2  1  1
7    2  3  2  2
8    0  0  0  0
9    0  1  0  0

我尝试对转置后的列进行转置和循环以获得 value_counts 但无法获得正确的结果。 非常感谢任何帮助。

使用DataFrame.mode with select first column by positions with DataFrame.iloc:

df['result'] = df.mode(axis=1).iloc[:, 0]
print (df)
   a  b  c  result
0  3  3  3       3
1  3  3  3       3
2  3  3  3       3
3  3  3  3       3
4  2  3  2       2
5  3  3  3       3
6  1  2  1       1
7  2  3  2       2
8  0  0  0       0
9  0  1  0       0