美文网首页
Python编程&数据科学入门——第5课作业

Python编程&数据科学入门——第5课作业

作者: 桦渔 | 来源:发表于2017-08-25 06:46 被阅读0次

    本文将使用Python来查看和可视化数据,比如绘制散点图。

    数据导入和查看

    导入将要分析的WorldIndex数据。用pandas.read_csv()读取数据,并用pandas.head()查看数据的开头5行。可以看到数据有5列,分别是国家,所在洲,预期寿命,人均GDP和人口数量。可以初步判断,将要分析的是每个国家的人均GDP和预期寿命的关系。

    import pandas as pd
    
    %matplotlib inline
    %config InlineBackend.figure_format = 'retina'
    
    df = pd.read_csv('WorldIndex.csv')
    df.head()
    

    为了更清楚的了解数据的整体情况,使用.info()方法查看数据的整体信息。可以看到数据有164行5列,而且没有缺失值。

    df.info()
    
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 164 entries, 0 to 163
    Data columns (total 5 columns):
    Country            164 non-null object
    Continent          164 non-null object
    Life_expectancy    164 non-null float64
    GDP_per_capita     164 non-null float64
    Population         164 non-null int64
    dtypes: float64(2), int64(1), object(2)
    memory usage: 6.5+ KB
    

    数据中的所在洲(Continent)是分类变量(categorical variable),可以使用.unique()方法来对查看Continent中大洲的名称。除了南极洲之外,其他的6大洲都包括在数据中了。

    df.Continent.unique()
    
    array(['Africa', 'Asia', 'Europe', 'North America', 'Oceania',
           'South America'], dtype=object)
    

    接下来,可以使用DataFrame的.value_counts()方法,来统计不同大洲中包含的国家数量。

    df.Continent.value_counts()
    
    Africa           48
    Europe           41
    Asia             36
    North America    19
    South America    11
    Oceania           9
    Name: Continent, dtype: int64
    

    数据可视化

    通过上面的分析,我们已经大致了解了WorldIndex数据的整体情况。为了让数据更直观,可以通过图形展现。

    散点图

    通过下面的散点图,可以看到预期寿命和人均GDP的关系:人均收入在2000美元以下时,预期寿命随收入增长而迅速增长;当人均收入高于20000美金时,收入增长而预期寿命基本没有变化。

    df.plot(kind='scatter', x='GDP_per_capita', y='Life_expectancy')
    

    为了进一步了解不同大洲的情况,可以使用布尔索引的方法获取6个大洲的数据,并通过散点图呈现。欧洲国家的人均GDP普遍较高,预期寿命普遍在70岁以上;非洲国家的人均GDP普遍较低,预期寿命普遍在75岁以下。

    Africa = df[df.Continent == 'Africa']
    Asia = df[df.Continent == 'Asia']
    Europe = df[df.Continent == 'Europe']
    NorthAmerica = df[df.Continent == 'North America']
    Oceania = df[df.Continent == 'Oceania']
    SouthAmerica = df[df.Continent == 'South America']
    
    
    ax = Africa.plot(kind='scatter', x='GDP_per_capita', y='Life_expectancy', color='Red', label='Africa', figsize=(10,6))
    Asia.plot(kind='scatter', x='GDP_per_capita', y='Life_expectancy', color='Yellow', ax=ax, label='Asia')
    Europe.plot(kind='scatter', x='GDP_per_capita', y='Life_expectancy', color='Blue', ax=ax, label='Europe')
    NorthAmerica.plot(kind='scatter', x='GDP_per_capita', y='Life_expectancy', color='Black', ax=ax, label='NorthAmerica')
    Oceania.plot(kind='scatter', x='GDP_per_capita', y='Life_expectancy', color='Green', ax=ax, label='Oceania')
    SouthAmerica.plot(kind='scatter', x='GDP_per_capita', y='Life_expectancy', color='Orange', ax=ax, label='SouthAmerica')
    
    
    箱图

    使用.describe()方法来总结数据中的中位数、四分位数、最大值和最小值等,可以看到预期寿命最大是83.84岁,最小是48.87岁;人均GDP最大是101909.82美元,最小是303.68美元。全球的贫富差距和人口健康水平差距都很大,需要大家共同努力,逐渐减少这些不公平。

    df.describe()
    

    用箱图可以更直观的看到全球预期寿命的差距。

    df.Life_expectancy.plot(kind='box')
    

    按不同的大洲,分别绘制不同预期寿命的箱图,可以更直观的看出不同大洲居民的预期寿命情况。

    df[['Life_expectancy', 'Continent']].boxplot(grid=False, by='Continent', figsize=(10,6))
    

    相关文章

      网友评论

          本文标题:Python编程&数据科学入门——第5课作业

          本文链接:https://www.haomeiwen.com/subject/xjwydxtx.html