旋转数据框的所有列

时间:2018-08-08 09:23:07

标签: python-3.x pandas pivot bar-chart

我有这个数据框:

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个常见国家/地区。我注意到熊猫枢轴没有完成任务。

1 个答案:

答案 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