致敬情人節,用資料分析我國5年婚姻狀況,且行且珍惜
今年回老家過年,姑媽一直催剛剛大學畢業的表弟找女朋友,被催婚的表弟說“養活自己都不容易了,哪有錢找女朋友,我不結婚的”,姑媽無奈說,“你不結婚早說啊,不用我那么辛苦供你上大學”,雖然我們都知道表弟不是真的不想找物件結婚,姑媽也知道表弟他只是氣話,但是確實說出了我們年輕人的無奈,估計姑媽做夢都想不到,他們那年代的人結婚就是三兩天的事情,兩人通過媒人婆介紹坐在一起,當場立斷定姻緣,合適就發個大紅包,不合適就回禮個小紅包,
無獨有偶,我堂哥87年的仍未結婚,中專畢業一直在城市打拼,前幾年回村務農種植點三華李,相親數十場,仍未遇到良緣 ,現在農村結婚也那么難的了嗎?還是我們年輕人想法多了?越多想法越難湊合?
我也想一探究竟,用資料說話,看看結婚是不是很難,看看我國目前婚姻年齡分布情況,分地區農村婚姻狀況分布等資訊,
讓我的杠精表弟且行且珍惜,遇到了就不要錯過,錯過了可能就是永遠,不信?資料是不會騙人的,
本程序采用Anaconda-Jupyter-notebook開發環境,用到pandas、plotly等庫,所有腳本及資料請點擊下載,謝謝!
目錄
致敬情人節,用資料分析我國5年婚姻狀況,且行且珍惜
一 資料準備清洗
1 資料匯入
2 樣本資料清理轉換
二 全國整體婚姻狀況分析
1 未婚情況
2 配偶情況
3 離婚情況
4 喪偶情況
三 2019年各省婚姻狀況分析
1 省未婚情況
2 配偶情況分布
3 離婚情況分布
4 喪偶情況分布
四 且行且珍惜
五 最后請支持
一 資料準備清洗
為此,我找了兩份資料,一份是2015-2019年各省農村性別婚姻狀況,一份是2018-2019年按年齡層性別分布婚姻狀況,資料均取自于國家統計局http://www.stats.gov.cn/tjsj./ndsj/

各省農村性別婚姻狀況取自于《中國人口和就業統計年鑒》-2-39《全國1人口省略各地區鄉村分性別婚姻狀況的人口》,2015-2019年五年的資料,資料均是取全國1%人口抽樣調查資料樣本,一般《中國人口和就業統計年鑒》是次年才發布,所有沒有找到2020年的資料,需要2021年發布才有,雖然不能代表最新資料,但是2015-2019年五年發資料,均可以反應我國農村目前婚姻狀況,部分資料樣本如下:
| 年份 | 地區 | 15歲及以上 | 男_15歲及以上 | 女_15歲及以上 | 未婚 | 男_未婚 | 女_未婚 | 有配偶 | 男_有配偶 | 女_有配偶 | 離婚 | 男_離婚 | 女_離婚 | 喪偶 | 男_喪偶 | 女_喪偶 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2019 | 全國 | 347154 | 175388 | 171766 | 61300 | 39196 | 22105 | 253911 | 123968 | 129943 | 6486 | 4622 | 1865 | 25456 | 7602 | 17854 |
| 2019 | 北京 | 2063 | 1119 | 945 | 392 | 234 | 158 | 1546 | 842 | 703 | 44 | 23 | 21 | 81 | 19 | 62 |
| 2019 | 天津 | 1748 | 893 | 855 | 321 | 192 | 129 | 1304 | 647 | 657 | 46 | 28 | 18 | 77 | 26 | 51 |
| 2019 | 河北 | 20126 | 10184 | 9942 | 3015 | 1957 | 1058 | 15546 | 7590 | 7957 | 308 | 241 | 67 | 1256 | 397 | 859 |
| 2019 | 山西 | 10113 | 5188 | 4925 | 1979 | 1250 | 729 | 7345 | 3638 | 3708 | 163 | 125 | 37 | 625 | 175 | 450 |
按年齡層性別分布婚姻狀況,資料為《中國人口和就業統計年鑒_第二部分年人口變動情況省略及以上人口分年齡_性別的婚姻狀況》,及根據年齡層分布的婚姻狀況資料,資料均是取全國1%人口抽樣調查資料樣本,本次分析取2018-2019年資料,2017年的資料沒找到,所以只分析兩年資料,部分資料樣本如下:
| 年份 | 年齡層 | 15歲及以上口 | 男_15歲及以上 | 女_15歲及以上 | 未婚 | 男_未婚 | 女_未婚 | 有配偶 | 男_有配偶 | 女_有配偶 | 離婚 | 男_離婚 | 女_離婚 | 喪偶 | 男_喪偶 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2019 | 總計 | 908609 | 459235 | 449374 | 163714 | 98992 | 64721 | 672419 | 334602 | 337817 | 20530 | 11546 | 8984 | 51947 | 14095 |
| 2019 | 15-19 | 55822 | 30261 | 25560 | 55038 | 30048 | 24990 | 777 | 212 | 565 | 6 | 1 | 5 | 2 | 1 |
| 2019 | 15 | 11586 | 6284 | 5302 | 11556 | 6267 | 5288 | 29 | 17 | 12 | 1 | 1 | |||
| 2019 | 16 | 10421 | 5655 | 4767 | 10376 | 5639 | 4737 | 43 | 14 | 29 | 2 | 1 | 1 | 1 | 1 |
| 2019 | 17 | 11229 | 6094 | 5135 | 11155 | 6069 | 5086 | 74 | 25 | 49 | |||||
| 2019 | 18 | 11136 | 6032 | 5104 | 10918 | 5972 | 4946 | 217 | 60 | 157 | 1 | 1 | |||
| 2019 | 19 | 11449 | 6197 | 5253 | 11034 | 6101 | 4932 | 414 | 95 | 318 | 1 | 1 | 1 | ||
| 2019 | 20-24 | 61519 | 32854 | 28665 | 50292 | 28817 | 21475 | 11036 | 3944 | 7092 | 183 | 91 | 92 | 9 | 1 |
| 2019 | 20 | 11121 | 5998 | 5124 | 10383 | 5768 | 4615 | 731 | 225 | 506 | 7 | 4 | 3 | ||
| 2019 | 21 | 12030 | 6469 | 5562 | 10778 | 6088 | 4690 | 1236 | 374 | 862 | 14 | 7 | 7 | 2 | |
| 2019 | 22 | 11891 | 6367 | 5525 | 9950 | 5725 | 4225 | 1911 | 628 | 1284 | 29 | 14 | 15 | 1 | |
| 2019 | 23 | 12411 | 6600 | 5811 | 9424 | 5488 | 3937 | 2918 | 1077 | 1841 | 68 | 36 | 32 | 1 | |
| 2019 | 24 | 14065 | 7421 | 6644 | 9756 | 5749 | 4008 | 4239 | 1641 | 2599 | 65 | 31 | 35 | 4 | 1 |
| 2019 | 25-29 | 81741 | 42186 | 39555 | 32502 | 20651 | 11851 | 48010 | 20885 | 27125 | 1182 | 641 | 541 | 47 | 9 |
| 2019 | 25 | 14258 | 7420 | 6838 | 8431 | 5085 | 3346 | 5700 | 2275 | 3426 | 118 | 57 | 60 | 8 | 2 |
| 2019 | 26 | 14941 | 7726 | 7215 | 7442 | 4589 | 2853 | 7332 | 3061 | 4271 | 159 | 73 | 86 | 8 | 2 |
| 2019 | 27 | 15439 | 8000 | 7439 | 6197 | 3964 | 2233 | 9015 | 3907 | 5108 | 223 | 129 | 95 | 3 |
1 資料匯入
# 1-讀取資料
import pandas as pd
?
CSV_FILE_PATH_01 = './01_各省農村婚姻狀況資料.csv'
CSV_FILE_PATH_02 = './02_全國年齡層婚姻狀況資料.csv'
?
df01 = pd.read_csv(CSV_FILE_PATH_01,sep=',',encoding="gbk")
df02 = pd.read_csv(CSV_FILE_PATH_02,sep=',',encoding="gbk")
?
print(df01.head(5))
print(df02.head(5))
2 樣本資料清理轉換
# 2 歷年統計樣本總資料情況
df01_total = df01[df01.地區 =='全國']
print(df01_total)
| 年份 | 地區 | 15歲及以上 | 男_15歲及以上 | 女_15歲及以上 | 未婚 | 男_未婚 | 女_未婚 | 有配偶 | 男_有配偶 | 女_有配偶 | 離婚 | 男_離婚 | 女_離婚 | 喪偶 | 男_喪偶 | 女_喪偶 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2019 | 全國 | 347154 | 175388 | 171766 | 61300 | 39196 | 22105 | 253911 | 123968 | 129943 | 6486 | 4622 | 1865 | 25456 | 7602 | 17854 |
| 31 | 2018 | 全國 | 372487 | 188280 | 184207 | 66272 | 41659 | 24613 | 272839 | 133925 | 138914 | 6568 | 4605 | 1964 | 26807 | 8091 | 18716 |
| 63 | 2017 | 全國 | 382931 | 193484 | 189446 | 67993 | 42154 | 25840 | 280967 | 138147 | 142821 | 6460 | 4615 | 1846 | 27510 | 8569 | 18941 |
| 95 | 2016 | 全國 | 398692 | 201401 | 197292 | 71988 | 44466 | 27523 | 291770 | 143175 | 148595 | 6224 | 4374 | 1850 | 28709 | 9385 | 19324 |
| 127 | 2015 | 全國 | 7542218 | 3808334 | 3733885 | 1361810 | 843848 | 517962 | 5544921 | 2718782 | 2826140 | 102716 | 73701 | 29014 | 532772 | 172003 | 360769 |
五年資料,15年的抽樣資料樣本最大有700萬多,其他年份基本是30萬份,總體樣本數量不一樣,我們將它轉換成比例,方便歷年資料作對比,清理轉換資料為比率:?
## 男女比率
df01['占比_男_15歲及以上'],df01['占比_女_15歲及以上'] = [df01['男_15歲及以上'] / df01['15歲及以上'],df01['女_15歲及以上'] / df01['15歲及以上']]
## 未婚比率
df01['占比_未婚'],df01['占比_未婚_男'] ,df01['占比_未婚_女']= [df01['未婚'] / df01['15歲及以上'],df01['男_未婚'] / df01['未婚'],df01['女_未婚'] / df01['未婚']]
## 有配偶比率
df01['占比_有配偶'],df01['占比_有配偶_男'] ,df01['占比_有配偶_女']= [df01['有配偶'] / df01['15歲及以上'],df01['男_有配偶'] / df01['有配偶'],df01['女_有配偶'] / df01['有配偶']]
## 離婚比率
df01['占比_離婚'],df01['占比_離婚_男'] ,df01['占比_離婚_女']= [df01['離婚'] / df01['15歲及以上'],df01['男_離婚'] / df01['離婚'],df01['女_離婚'] / df01['離婚']]
## 喪偶比率
df01['占比_喪偶'],df01['占比_喪偶_男'] ,df01['占比_喪偶_女']= [df01['喪偶'] / df01['15歲及以上'],df01['男_喪偶'] / df01['喪偶'],df01['女_喪偶'] / df01['喪偶']]
?
?
## 占比的列
type(df01)
cl_list = list(df01.filter(regex='占比'))
##放大100倍
df01_ratio = df01[cl_list] *100
?
cl_list.insert(0,'地區')
cl_list.insert(0,'年份')
df01_ratio =df01_ratio.reindex(columns=cl_list)
?
df01_ratio['地區'] = df01['地區']
df01_ratio['年份'] = df01['年份']
?
print(df01_ratio.head())
部分資料顯示如下

二 全國整體婚姻狀況分析
基本資料已經準備完畢,我們開始看看這些資料都有帶來給我們什么資訊,先看看全國整體資料情況:

部分代碼:
df =df01_ratio[df01_ratio.地區 =='全國']
x = df['年份']
fig = go.Figure()
for c in list(df.columns.drop(['年份','地區'])):
fig.add_trace(go.Scatter(x=x, y=df[c],
mode='lines+markers',
name=c))
?
fig.show()
基本符合我們的預期,資料項比較多,我們逐一縷一縷,看看都有些什么資訊,
1 未婚情況

發現,2015年-2019年未婚人數占比率逐年下降,由18%降到17.6%,女生未婚人數由38%降到36%,看樣子大家都結婚啦 ,而且估計步入15歲的年輕人人口逐步減少,所以未婚率下降,比較符合我國國情,再看看男生未婚的,卻是由61%上升到63%, 未婚人群中,63%都是男的打光棍,女生占比不到40%,
結論1:男人成年后,60%+是要打光棍,而且逐年上升,
2 配偶情況

再看看配偶情況,5年內有配偶占比情況均73%,而男女分布情況基本為兩級分化,男生有配有占比49%左右徘徊.找不到物件的基本都是男的,很符合我們的認知,
結論2:男人成年后,60%+是要打光棍,而且逐年上升,
3 離婚情況
離婚情況,很明顯,逐年上升,而且漲得非常快,

看看離婚性比分別,基本男的占70%,女的30%左右,杠精表弟說,男女離婚不是應該是五五分嗎?為什么男的占比70%?很顯然就是人家女生離婚后還可以找到好人家唄,離婚男還想輕易有人要?(⊙﹏⊙),所以,結婚的哥們,好好珍惜老婆,別想著你還可以找到更好的,離婚后70%*52%概率你還是沒有配偶的離婚狀態,

結論3:男人離婚后更難結婚
4 喪偶情況
15歲喪偶情況,整體小幅度上升趨勢,估計是老齡化導致,比較年輕人占比逐步減小,而比較有意思的是,男女的上喪偶占比三七分,應該是女生喪偶后更多選擇堅守曾經那份愛情吧,或是男人們作業壓力大,而且從事危險作業多,程式員等996人群不容易,且包容您的丈夫吧,他為了這個家也不容易,愛情,婚姻,始終都是兩個人的,

結論4:男人女人都不易,既然選擇在一起就風雨兼程
杠精表弟說,這只是全國的狀況,不代表我們大廣東實際情況啊,可能我們廣東女多男少呢,可能我們廣東有錢就不一樣呢?
也是,那我們看看全國各地的婚姻狀況吧
三 2019年各省婚姻狀況分析
1 省未婚情況
df =df01_ratio[(df01_ratio.地區 !='全國') & (df01_ratio.年份 == 2019 )]
#print(df.head())
TYPE_NAME = '占比_未婚_男'
fig = px.pie(df, values=df[TYPE_NAME], names='地區', title='2019年各省'+TYPE_NAME+'情況')
fig.show()



未婚女西藏、北京、天津多,未婚男福建、湖北、海南多,2019年整體未婚情況,西藏、海南廣東最多,單獨分析下廣東情況:基本也是男的多,不容易啊,找個物件!

2 配偶情況分布
上海大哥有物件無疑,福建大哥未婚有物件?

3 離婚情況分布
黑龍江的爺們娘們反省下?

山東的哥們說兩句?資料好像也不能反應什么,只看到分布情況,


4 喪偶情況分布

四 且行且珍惜
杠精表弟還想狡辯說自己年輕,不急,本想把2018/2019兩年的我國按年齡層、性別婚姻狀況資料分析給他看,讓他死心的,不過我也沒有這個精力了,表弟你自己分析吧,我相信基本可以反映你在那個年齡層多大概率還是未婚沒有配偶,畢竟我們也不是地主人家,

所以,奉勸那些還以為自己有條件、還年輕的年輕的人們,如果找到真愛、遇到對的,請且行且珍惜,
五 最后請支持
本程序腳本及資料,請點擊下載:https://download.csdn.net/download/sc_liuliye/15270917,謝謝!或關注wx公眾號:freo-studio,回復“婚姻狀況資料分析”,獲取檔案腳本地址鏈接
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259690.html
標籤:其他
上一篇:期貨因子分析(六)
下一篇:OSPF之路由過濾
