将分类数据转换为各种列,以便在pandas

时间:2016-01-06 20:30:06

标签: python pandas

我是pythonpandas的新手,但我过去曾使用R进行数据分析。我有一个简单的数据集:

df.head()

Sequence      Level    Count
       1       Easy        5
       1     Medium        7
       1       Hard        9

我想将其转换为:

Sequence    Easy    Medium    Hard
       1       5         7       9

R中,我可以使用reshape2包执行此操作。在python中,似乎我的一个选择是使用get_dummies创建虚拟变量,但在我的情况下仍会为同一Sequence生成多行。有没有一种简单的方法来实现我的结果集?

我终于尝试使用以下方式绘制它:

import matplotlib.pyplot as plt


df.plot(kind='bar', stacked=True)

plt.show()

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用pandas pivot_table

In [1436]: pd.pivot_table(df, index='Sequence', columns='Level', values='Count')
Out[1436]: 
Level     Easy  Hard  Medium
Sequence                    
1            5     9       7

然后你可以绘制它:

df1 = pd.pivot_table(df, index='Sequence', columns='Level', values='Count')
df1.plot(kind='bar', stacked=True)

enter image description here