Что я пытаюсь сделать, так это воспроизвести счетчики значений panda + функции idxmax в dask, потому что у меня много данных. Вот пример кадра данных:
partner_num cust_id item_id revw_ratg_num revw_dt item_qty
0 100 01 5 05/30/2000 0
0 100 03 5 05/30/2000 0
0 100 02 5 05/30/2000 0
1 200 13 4 04/01/2000 0
1 200 14 5 04/01/2000 1
2 200 22 2 04/01/2000 1
3 200 37 3 04/01/2000 1
9 300 92 1 03/24/2000 1
9 300 93 1 03/24/2000 1
9 300 94 1 03/24/2000 0
9 300 99 1 03/24/2000 0
6 300 91 2 03/24/2000 0
>>>df.head()
partner_num cust_id item_id revw_ratg_num revw_dt item_qty
0 0 100 1 5 05/30/2000 0
1 0 100 3 5 05/30/2000 0
2 0 100 2 5 05/30/2000 0
3 1 200 13 4 04/01/2000 0
4 1 200 14 5 04/01/2000 1
В пандах это можно сделать так:
df = pd.read_csv("fake_data.txt", sep="\t")
df.groupby(["cust_id"]).item_qty.value_counts()
cust_id item_qty
100 0 3
200 1 3
0 1
300 0 3
1 2
Однако, когда вы делаете то же самое в Dask, это не удается, выдавая ошибку атрибута.
df1 = dd.read_csv("fake_data.txt", sep="\t")
df1.groupby(["cust_id"]).item_qty.value_counts()
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
df1.groupby(["cust_id"]).item_qty.value_counts()
AttributeError: 'SeriesGroupBy' object has no attribute 'value_counts''
Что я действительно хочу сделать, так это иметь возможность получать как значения, так и количество их вхождений после группы с несколькими столбцами в Dask. Любые альтернативные решения приемлемы, я просто хочу выполнить свою работу!