Từ phiên bản 0.20.1 nó là đơn giản hơn:
Strings passed to DataFrame.groupby() as the by parameter may now reference either column names or index level names
arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]
index = pd.MultiIndex.from_arrays(arrays, names=['first', 'second'])
df = pd.DataFrame({'A': [1, 1, 1, 1, 2, 2, 3, 3],
'B': np.arange(8)}, index=index)
print (df)
A B
first second
bar one 1 0
two 1 1
baz one 1 2
two 1 3
foo one 2 4
two 2 5
qux one 3 6
two 3 7
print (df.groupby(['second', 'A']).sum())
B
second A
one 1 2
2 4
3 6
two 1 4
2 5
3 7
Bạn sẽ có thể làm' df.groupby ([df.index , 'item_bought']) áp dụng (pd.Series.count (cấp = 0)) ', thực sự không' df.groupby ([df.index, 'item_bought']). Count() 'cung cấp cho bạn những gì bạn muốn? – EdChum
Tại sao không sử dụng làm cho câu trả lời này? – vumaasha
Tôi gặp lỗi khi cố gắng nhóm theo [df.index, '']: Cá mú và trục phải có cùng độ dài –
codekitty