Pandas .plot.hist() 与 .groupby()

标签 pandas pandas-groupby pivot-table histogram

我知道 this similar question被问到;但是,如果可能的话,我正在寻找进一步的说明,以便更好地理解 .groupby。 Data used

我想要与这样完全相同的结果,但使用 .groupby():

df.pivot(columns='survived').age.plot.hist()

enter image description here

所以我尝试:

df.groupby('age')['survived'].count().plot.hist()

enter image description here

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))

我注意到在您发布的链接中,所有直方图看起来都有些不同。我认为这是由于每种方法的装箱方式略有不同。切割自己的箱子的一个好处是您可以清楚地看到确切的箱子边界:

histogram of survival by age

关于 Pandas .plot.hist() 与 .groupby(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66701446/

相关文章:

python - 接下来 n 行的更复杂的滚动总和

python - 使用 nrows 和 skiprows 读取 pandas 数据框时保留列名

python - pandas 根据先前的值创建组

pandas - Groupby Year 和其他列并根据特定条件 pandas 计算平均值

python - 如何对多列进行分组并计算pandas中的百分比

angular - Angular 2 的数据透视表组件?

php - 数据透视表中的 laravel/ Eloquent 修改器/访问器

python - 在循环中追加 Pandas DataFrame

python - 比较两个 Pandas 数据框的差异

Pandas -枢轴||为比率/百分比创建自定义列