python人口统计_python数据分析实例-人口统计折线图
一、前言
最近一直在學(xué)python數(shù)據(jù)科學(xué)的相關(guān)課程,主要看了《數(shù)據(jù)科學(xué)入門》這本動(dòng)物書,但這本書是真的只入個(gè)門,把數(shù)據(jù)科學(xué)相關(guān)的各方面知識(shí)介紹了一下,真的只是介紹了一下,想要系統(tǒng)地學(xué)習(xí)還是得去看更細(xì)致的教程和官方文檔。
不斷地找網(wǎng)上的demo跟著敲,差不多的時(shí)候決定自己實(shí)現(xiàn)一個(gè)簡單的案例。于是乎找到了一個(gè)很好的數(shù)據(jù)網(wǎng)站——國家數(shù)據(jù)。里面的數(shù)據(jù)支持多種形式的下載。
二、實(shí)現(xiàn)
這里是下載了中國近20年的總?cè)丝凇⒛行匀丝凇⑴匀丝凇⒊擎?zhèn)人口、鄉(xiāng)村人口的數(shù)據(jù)。import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用來正常顯示中文標(biāo)簽
plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示負(fù)號(hào)
# 指標(biāo)
# 年末總?cè)丝?萬人)
# 男性人口(萬人)
# 女性人口(萬人)
# 城鎮(zhèn)人口(萬人)
# 鄉(xiāng)村人口(萬人)
# 打開并讀取csv文件
file = open("population_20.csv", 'r')
# 讀取csv文件到DataFrame
# 這里若不添加參數(shù)encoding='gb18030' 會(huì)報(bào)錯(cuò)'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')
# 設(shè)置DataFrame的行名
df.index = ['總?cè)丝?#39;, '男性人口', '女性人口', '城鎮(zhèn)人口', '鄉(xiāng)村人口']
# 輸出DataFrame
print(df)
# 獲取列名 即之后的橫坐標(biāo)刻度 [::-1]是用來反轉(zhuǎn)的 因?yàn)槲蚁胍粋€(gè)2000-2019的順序
xlist = list(df.columns[::-1])
# 年末總?cè)丝?/p>
# df.loc[]返回的是一個(gè)series
# 這里的末尾使用了[::-1] 即用來反轉(zhuǎn)series
total_population = df.loc['總?cè)丝?#39;][::-1]
total_population.plot()
# 男性人口
man_population = df.loc['男性人口'][::-1]
man_population.plot()
# 女性人口
woman_population = df.loc['女性人口'][::-1]
woman_population.plot()
# 城鎮(zhèn)人口
city_population = df.loc['城鎮(zhèn)人口'][::-1]
city_population.plot()
# 鄉(xiāng)村人口
village_population = df.loc['鄉(xiāng)村人口'][::-1]
village_population.plot()
# 設(shè)置x軸
# 這里卡住了我好久 后面多嘗試才發(fā)現(xiàn)x軸的刻度是從0開始的 還是要多動(dòng)手敲才能發(fā)現(xiàn)啊
x_ticks = np.linspace(0, 20, 10)
plt.xticks(x_ticks, xlist)
# 設(shè)置y軸
y_ticks = np.arange(0, 150000, 10000)
plt.yticks(y_ticks)
# 設(shè)置圖例位置
plt.legend(loc='lower right')
# 設(shè)置標(biāo)注
plt.annotate('單位:萬人', xy=(15.5, 40000))
plt.show()
結(jié)果:
三、總結(jié)
剛開始學(xué)習(xí)數(shù)據(jù)科學(xué)的時(shí)候,只是不斷地在敲demo,或者做例題,敲了很多遍還是記不住matplotlib、numpy、pandas等待這些第三方庫。半途也想過先放下去學(xué)別的,但好在沒有放棄,每天都堅(jiān)持看一點(diǎn)資料(但也不得不吐槽,現(xiàn)在中文環(huán)境的互聯(lián)網(wǎng)信息污染有點(diǎn)嚴(yán)重,各種爬蟲產(chǎn)生的文章不斷重復(fù)出現(xiàn))。我也慢慢地收藏了一些很好的教程:
如何高效入門數(shù)據(jù)科學(xué)?(王樹義老師的教程真很友好,菜鳥也完全可以跟著一步步實(shí)現(xiàn)一個(gè)個(gè)小demo)
莫煩PYTHON
易百教程
DataSense|DataScience
……
感謝!
剛開始學(xué)習(xí)的時(shí)候,很糾結(jié)是多做例題還是直接上手實(shí)例,但后來發(fā)現(xiàn)兩者是分不開的,不敲例題來熟悉語法,會(huì)不知道如何實(shí)現(xiàn)、實(shí)現(xiàn)什么demo,不去自己從頭或者模仿構(gòu)思一個(gè)demo的話,也沒辦法把語法知識(shí)串聯(lián)在一起。還是得多動(dòng)手敲,再一個(gè)是多總結(jié)。
就比如這個(gè)實(shí)例吧,雖然很簡單,甚至說直接拿excel操作都更簡單。但是也串聯(lián)了I\O、matplotlib、numpy、pandas和其中series、dataframe云云一些細(xì)小的知識(shí)點(diǎn)。所以說,還是得不斷熟悉記憶語法并同時(shí)去做一些實(shí)例比較好。
https://www.jianshu.com/p/0ad147e40750
總結(jié)
以上是生活随笔為你收集整理的python人口统计_python数据分析实例-人口统计折线图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python实现栈及其简单应用
- 下一篇: Python知识归纳(一)Python介