我知道 this similar question被问到;但是,如果可能的话,我正在寻找进一步的说明,以便更好地理解 .groupby。 Data used
我想要与这样完全相同的结果,但使用 .groupby():
df.pivot(columns='survived').age.plot.hist()
所以我尝试:
df.groupby('age')['survived'].count().plot.hist()
x 轴看起来不对。有什么方法可以得到与使用纯 .groupby() 方法的 .pivot() 相同的结果吗?谢谢。
最佳答案
扩展 Quang 的评论,您可能希望对年龄进行分类,而不是对每个年龄进行分组(df.groupby('age')
就是这样做的)。
一种方法是cut
age
容器:
df['age group'] = pd.cut(df.age, bins=range(0, 100, 10), right=False)
然后 groupby
这些 bin 并制作 survived.value_counts()
的条形图:
(df.groupby('age group').survived.value_counts()
.unstack().plot.bar(width=1, stacked=True))
我注意到在您发布的链接中,所有直方图看起来都有些不同。我认为这是由于每种方法的装箱方式略有不同。切割自己的箱子的一个好处是您可以清楚地看到确切的箱子边界:
关于 Pandas .plot.hist() 与 .groupby(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66701446/