我有这个数据框:
df= pd.DataFrame({'Jan' : ['US', 'GB', 'NL', 'CH', 'GB', 'US'],
'Feb': ['US', 'AU', 'RU', 'NO', 'AU', 0],
'Mar' : ['PL', 'AU', 'FI', 'US', 'CH', 'CH']})
我想创建堆叠的条形图以显示每月的国家/地区数量。因此,我首先需要将此数据帧转换为以下形式:
Jan Feb Mar
US 2 1 1
GB 2 0 0
NL 1 0 0
CH 1 0 2
AU 0 2 1
RU 0 1 0
NO 0 1 0
PL 0 0 1
FI 0 0 1
0 0 1 0
我的数据框很大,但是我想在堆积的条形图上显示每月最多的10个常见国家/地区。我注意到熊猫枢轴没有完成任务。
答案 0 :(得分:2)
您可以
In [46]: s = df.stack().reset_index()
In [47]: pd.crosstab(s[0], s['level_1']).rename_axis(None, 1).rename_axis(None, 0)
Out[47]:
Feb Jan Mar
0 1 0 0
AU 2 0 1
CH 0 1 2
FI 0 0 1
GB 0 2 0
NL 0 1 0
NO 1 0 0
PL 0 0 1
RU 1 0 0
US 1 2 1