Машина предоставляет коды ошибок, которые указаны в кадре данных pandas. id идентифицирует машину, code — код неисправности:
df = pd.DataFrame({
"id": [1,1,1,1,1,2,2,2,2,3,3,3,3,3,3,4],
"code": [1,2,5,8,9,2,3,5,6,1,2,3,4,5,6,7],
})
Пример чтения: Машина 1 сгенерировала 5 кодов: 1,2,5,8 и 9.
Я хочу выяснить, какие комбинации кода наиболее часто встречаются на всех машинах. Результатом для примера будет что-то вроде [2](3x), [2,5](3x), [3,5](2x) и так далее.
Как я могу этого добиться? Поскольку данных много, я ищу эффективное решение.
Вот два других способа представления данных (на случай, если это упростит расчет):
pd.crosstab(df.id, df.code)
df.groupby("id")["code"].apply(list)



explodeдля списка кортежей для возможного подсчета наvalue_counts28.09.2020