【问题标题】:How to create histogram from grouped data如何从分组数据创建直方图
【发布时间】:2016-04-25 01:17:23
【问题描述】:

我正在尝试从 pandas 中的分组数据创建直方图。

到目前为止,我能够创建标准线图。但我不知道如何做同样的事情来获得直方图(条形图)。我想获得泰坦尼克号粉碎幸存者和未幸存者的 2 个年龄直方图 - 看看年龄分布是否存在差异。

源数据: https://www.udacity.com/api/nodes/5454512672/supplemental_media/titanic-datacsv/download

到目前为止我的代码:

import pandas as pn
titanic = pn.DataFrame.from_csv('titanic_data.csv')

SurvivedAge= titanic.groupby(['Survived','Age']).size()
SurvivedAge=SurvivedAge.reset_index()
SurvivedAge.columns=['Survived', 'Age', 'Num']
SurvivedAge.index=(SurvivedAge['Survived'])
del SurvivedAge['Survived']

SurvivedAget=SurvivedAge.reset_index().pivot('Age', 'Survived','Num')

SurvivedAget.plot() 

当我试图从这个数据集中绘制直方图时,我得到了奇怪的结果。

SurvivedAget.hist()

我将不胜感激。

【问题讨论】:

    标签: python pandas matplotlib histogram


    【解决方案1】:

    你可以:

    titanic = pd.read_csv('titanic_data.csv')
    survival_by_age = titanic.groupby(['Age', 'Survived']).size().unstack('Survived')
    survival_by_age.columns = ['No', 'Yes']
    survival_by_age.plot.bar(title='Survival by Age')
    

    得到:

    您可以进一步tweak。您还可以合并小数年龄,以便您可以使用整数索引或bin 将数据转换为 5 年的年龄跨度以获得更多用户友好的输出。然后是seaborn 有各种类型的分布图。

    【讨论】:

      猜你喜欢
      • 2021-11-22
      • 2015-05-30
      • 1970-01-01
      • 2022-01-09
      • 2015-02-10
      • 2018-11-26
      • 1970-01-01
      • 2017-12-08
      • 2012-02-26
      相关资源
      最近更新 更多