我是python
和pandas
的新手,但我过去曾使用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()
任何帮助都将不胜感激。
答案 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)