如何根据 pandas 中的多列进行分组?
How to groupby based on multiple columns in pandas?
我想根据基于多列的数据框进行分组。例如:
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() 然后尝试计数。但是我不知道如何按国家/地区垂直分组。有什么想法吗?
感谢
做 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
我想根据基于多列的数据框进行分组。例如:
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() 然后尝试计数。但是我不知道如何按国家/地区垂直分组。有什么想法吗?
感谢
做 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