python人口统计_python数据分析实例-人口统计折线图

一、前言

最近一直在学python数据科学的相关课程,主要看了《数据科学入门》这本动物书,但这本书是真的只入个门,把数据科学相关的各方面知识介绍了一下,真的只是介绍了一下,想要系统地学习还是得去看更细致的教程和官方文档。

不断地找网上的demo跟着敲,差不多的时候决定自己实现一个简单的案例。于是乎找到了一个很好的数据网站——国家数据。里面的数据支持多种形式的下载。

二、实现

这里是下载了中国近20年的总人口、男性人口、女性人口、城镇人口、乡村人口的数据。import pandas as pd

import matplotlib.pyplot as plt

import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签

plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号

# 指标

# 年末总人口(万人)

# 男性人口(万人)

# 女性人口(万人)

# 城镇人口(万人)

# 乡村人口(万人)

# 打开并读取csv文件

file = open("population_20.csv", 'r')

# 读取csv文件到DataFrame

# 这里若不添加参数encoding='gb18030' 会报错'utf-8' codec can't decode byte 0xc4 in position 4: invalid continuation byte

# 即utf-8无法被解析

df = pd.read_csv("population_20.csv", encoding='gb18030')

# 设置DataFrame的行名

df.index = ['总人口', '男性人口', '女性人口', '城镇人口', '乡村人口']

# 输出DataFrame

print(df)

# 获取列名 即之后的横坐标刻度 [::-1]是用来反转的 因为我想要一个2000-2019的顺序

xlist = list(df.columns[::-1])

# 年末总人口

# df.loc[]返回的是一个series

# 这里的末尾使用了[::-1] 即用来反转series

total_population = df.loc['总人口'][::-1]

total_population.plot()

# 男性人口

man_population = df.loc['男性人口'][::-1]

man_population.plot()

# 女性人口

woman_population = df.loc['女性人口'][::-1]

woman_population.plot()

# 城镇人口

city_population = df.loc['城镇人口'][::-1]

city_population.plot()

# 乡村人口

village_population = df.loc['乡村人口'][::-1]

village_population.plot()

# 设置x轴

# 这里卡住了我好久 后面多尝试才发现x轴的刻度是从0开始的 还是要多动手敲才能发现啊

x_ticks = np.linspace(0, 20, 10)

plt.xticks(x_ticks, xlist)

# 设置y轴

y_ticks = np.arange(0, 150000, 10000)

plt.yticks(y_ticks)

# 设置图例位置

plt.legend(loc='lower right')

# 设置标注

plt.annotate('单位:万人', xy=(15.5, 40000))

plt.show()

结果:

python人口统计_python数据分析实例-人口统计折线图_第1张图片

三、总结

刚开始学习数据科学的时候,只是不断地在敲demo,或者做例题,敲了很多遍还是记不住matplotlib、numpy、pandas等待这些第三方库。半途也想过先放下去学别的,但好在没有放弃,每天都坚持看一点资料(但也不得不吐槽,现在中文环境的互联网信息污染有点严重,各种爬虫产生的文章不断重复出现)。我也慢慢地收藏了一些很好的教程:

如何高效入门数据科学?(王树义老师的教程真很友好,菜鸟也完全可以跟着一步步实现一个个小demo)

莫烦PYTHON

易百教程

DataSense|DataScience

……

感谢!

刚开始学习的时候,很纠结是多做例题还是直接上手实例,但后来发现两者是分不开的,不敲例题来熟悉语法,会不知道如何实现、实现什么demo,不去自己从头或者模仿构思一个demo的话,也没办法把语法知识串联在一起。还是得多动手敲,再一个是多总结。

就比如这个实例吧,虽然很简单,甚至说直接拿excel操作都更简单。但是也串联了I\O、matplotlib、numpy、pandas和其中series、dataframe云云一些细小的知识点。所以说,还是得不断熟悉记忆语法并同时去做一些实例比较好。

https://www.jianshu.com/p/0ad147e40750

你可能感兴趣的:(python人口统计)