числовая последовательность в кадре данных - PullRequest
0 голосов
/ 23 июня 2018

У меня есть такой набор данных (цифр):

Набор данных

Я хочу получить наиболее частое число во всех столбцах.

Я пытался

#through all the columns
for i in numeros[:16]:
print(numeros[i].value_counts().idxmax())

и его возвращение

1,7,12,5,8,17,14,9,20,2,6,4,14,2,21

Но это вернуло только самое частое число в каждом столбце, верно?Как я могу получить 15 самых частых номеров, учитывая все мои данные?

Ответы [ 3 ]

0 голосов
/ 23 июня 2018

раствор для панд:

df = pd.DataFrame(np.random.randint(1,100,(9,15)))
df = df.stack().to_frame('key')
df['value'] = 1
df.groupby('key').count().sort_values(['value'],ascending=False).iloc[:15]
0 голосов
/ 23 июня 2018

Использование pd.Series.value_counts:

df = pd.DataFrame(np.random.randint(0, 100, (100, 100)))

res = pd.Series(df.values.flatten()).value_counts().head(15)

Результатом будет серия отсчетов с наивысшими отсчётами, сначала проиндексированная значениями фрейма данных.

0 голосов
/ 23 июня 2018

Использование collections.Counter и его most_common метод:

from collections import Counter

df = pd.DataFrame(np.random.randint(0, 100, (100, 100)))

res = pd.DataFrame.from_dict(Counter(df.values.flatten()).most_common(15))

print(res)

     0    1
0   64  126
1   72  119
2    1  116
3   14  115
4   28  114
5   67  113
6   16  113
7   56  113
8   84  112
9    3  112
10  19  112
11  13  111
12  94  110
13  52  110
14  66  109
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...