Подсчитайте самые частые значения в строке pandas и создайте столбец с этим самым частым значением - PullRequest
1 голос
/ 20 января 2020

У меня есть кадр данных, подобный приведенному ниже:

     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, но не смог получить правильный результат. Любая помощь высоко ценится.

1 Ответ

3 голосов
/ 20 января 2020

Используйте DataFrame.mode с выбором первого столбца по позициям с 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
...