我想按多个列将数据框分组。例如要这样做:
Country Type_1 Type_2 Type_3 Type_4 Type_5
China A B C D E
Spain A A R B C
Italy B A B R R
对此:
Country Type Count
China A 1
B 1
C 1
D 1
E 1
Spain A 2
R 1
B 1
C 1
Italy B 2
A 1
R 2
我试图垂直合并从Type_1到Type_5的列,应用reset_index()然后尝试计数。但是我不怎么按国家垂直分组。有什么想法吗?
Thx
答案 0 :(得分:1)
先melt
,然后groupby
,然后size
s = df.melt('Country').groupby(['Country','value']).size()
Out[326]:
Country value
China A 1
B 1
C 1
D 1
E 1
Italy A 1
B 2
R 2
Spain A 2
B 1
C 1
R 1
dtype: int64