Допустим, у нас есть этот пример данных.
| mem_id | main_title | sub_title |
-----------------------------------
| 1 | 1 | 1 |
| 10 | 3 | 2 |
| 3 | 3 | 2 |
| 45 | 1 | 2 |
| 162 | 2 | 2 |
...
1) сводка данных
- mem_id: уникальный идентификатор 200 человек
- main_title: 3уникальные метки (1,2,3)
- sub_title: 6 уникальных меток (1,2,3,4,5,6), и каждый main_title может иметь один из этих субтитров.
возможно повторение, например один mem_id может иметь несколько вариантов (1: основной, 1: суб)
2) вопрос
Я бы хотелсделать результат табличной функции R в Python.
Результат табличной функции R такой.Я могу сделать любую возможную комбинацию из всех main_title и sub_title.Также можно получить счет каждого случая по mem_id.
count.data <- table(data$mem_id, data$main_title, data$sub_title)
count.table <- as.data.frame(count.data)
===============================================
mem_id main_title sub_title value
1 1 1 1 0
2 2 1 1 0
3 3 1 1 0
4 4 1 1 0
5 5 1 1 0
6 6 1 1 0
7 7 1 1 0
.
.
.
Я пытался получить этот результат в Python, и нижеприведенный результат - то, что я получил до сих пор.
cross_table1 = pd.melt(data, id_vars=['main_title ', 'sub_title'], value_vars='mem_id', value_name='mem_id')
==================================================
main_title sub_title variable mem_id
1 1 1 mem_id 10
2 1 1 mem_id 10
3 3 1 mem_id 10
4 4 2 mem_id 10
5 1 4 mem_id 132
6 4 1 mem_id 65
7 4 3 mem_id 88
.
.
.
cross_table2 = cross_table1.pivot_table(index=['main_title ', 'sub_title', 'mem_id'], values='variable', aggfunc='count')
cross_table32.reset_index().sort_values('value')
==============================================
main_title sub_title mem_id value
1 1 1 1 4
2 1 1 2 3
3 3 1 3 1
4 4 2 3 10
5 1 4 3 2
6 1 1 4 5
7 3 2 5 2
.
.
.
Я понимаю, что это показывает только положительный результат столбца value (count of case).
Мне нужно включить все возможные комбинации main_title и sub_title, так как 1 & 1 (main & sub) case должен иметь200 строк с возможным нулевым значением в столбце count.
Было бы очень признательно, если бы я мог получить какую-либо помощь или совет !!Спасибо:)