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

2017-08-25  本文已影响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))
上一篇下一篇

猜你喜欢

热点阅读