появление двух строк в столбцах - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть фрейм данных, и я хочу сосчитать пару наиболее распространенных пятерок из двух строк в двух столбцах (например, col_1 col_2)

, встречается следующая пара

B      C
C      B

дважды в таблице ниже

col_1 col_2 value

A      N    2
N      A    3
B      C    5
C      B    6
S      A    2
A      S    2
B      C    2
C      B    1

1 Ответ

0 голосов
/ 30 сентября 2019

Используйте GroupBy.size с Series.nlargest и получите значения индекса:

N = 2
a = df.groupby(['Col_1','col_2']).size().nlargest(N).index.tolist()
print (a)
[('B', 'C'), ('C', 'B')]

При необходимости новый DataFrame используйте MultiIndex.to_frame:

df1 = df.groupby(['Col_1','col_2']).size().nlargest(2).index.to_frame(index=False)
print (df1)
  Col_1 col_2
0     B     C
1     C     B

При необходимости подсчитать все вхождения:

df2 = df.groupby(['Col_1','col_2']).size().reset_index(name='count')
print (df2)
  Col_1 col_2  count
0     A     N      1
1     A     S      1
2     B     C      2
3     C     B      2
4     N     A      1
5     S     A      1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...