系列文章
手把手教你数据分析(1)--Pandas读取Excel信息
手把手教你数据分析(2)--缺失值处理
手把手教你数据分析(3)--数据可视化
00准备工作:
素材:一份全国各省市市委书记数据表.xls
(链接: https://pan.baidu.com/s/1gbgvcLbfEMM-9hFCZw1VlQ 密码: p66u)
编程环境:mac + anaconda + jupyter notebook + python3.6
目录:
01 分析市委书记中的男女比例
02 不同省份女性领导人性别占比
01 要点
001 对缺失值处理 data_gender_re = data_gender[data_gender.notna()]
002 describe会自动对缺失值处理
003 print字符串时,使用str将数值转化为字符串
004 pandas.crosstab()类似于Excel中的数据透视表
005 pandas.sort_values(by = ['xxx'], ascending = False)可以将数据排序,ascending = False表示降序
02 操作源码
#021 缺失值处理
#市委书记性别比例
data_gender_re = data_gender[data_gender.notna()]#notna() = notnull()
print(data_gender_re.head(10))
print(len(data))
#describe 会自动对缺失值进行去除
#使用len()计算长度
print('----------')
print(data_gender_re.unique())
print('----------')
count = len(data_gender_re)
count_m = len(data_gender_re[data_gender_re=="男"])
count_w = len(data_gender_re[data_gender_re=="女"])
rate_m = count_m/count
rate_w = count_w/count
print("样本总量:"+str(count)+'\n'
"女性样本量:"+str(count_w)+'\n'
"男性样本量:"+str(count_m)+'\n'
"女性占比:"+str(rate_w*100)[0:4]+'%'+'\n'
"男性占比:"+str(rate_m*100)[0:4]+'%'+'\n')#str()将数值型值转换成字符型值
print('----------')
121 男
122 男
123 男
124 男
125 男
126 男
127 男
128 男
129 男
130 男
Name: 性别, dtype: object
3663
----------
['男' '女']
----------
样本总量:2708
女性样本量:75
男性样本量:2633
女性占比:2.76%
男性占比:97.2%
----------
#022
#女性在不同省份的占比
data_gender2 = data[["省级政区名称","性别"]]
data_gender2_re = data_gender2[data_gender2['性别'].notnull()]
print(data_gender2_re.head(10))
print('----------')
pt = pd.crosstab(data_gender2_re['省级政区名称'],data_gender2_re['性别'])
print(pt.head(10))
#crosstab 类似数据透视表
print('----------')
pt['女性占比'] = pt['女']/(pt['女']+pt['男'])
#直接在pt新加一字段“女性占比”
pt2 = pt.sort_values(by = ['女性占比'], ascending=False)
#pt.sort_values()排序,ascending = False 降序排列
print(pt2.head(10))
print('----------')
省级政区名称 性别
121 山西省 男
122 山西省 男
123 山西省 男
124 山西省 男
125 山西省 男
126 山西省 男
127 山西省 男
128 山西省 男
129 山西省 男
130 山西省 男
----------
性别 女 男
省级政区名称
云南省 2 73
内蒙古自治区 0 86
吉林省 4 72
四川省 8 155
宁夏回族自治区 0 49
安徽省 7 167
山东省 6 178
山西省 6 112
广东省 5 212
广西壮族自治区 0 122
----------
性别 女 男 女性占比
省级政区名称
辽宁省 13 121 0.097015
陕西省 9 93 0.088235
吉林省 4 72 0.052632
山西省 6 112 0.050847
四川省 8 155 0.049080
安徽省 7 167 0.040230
江西省 4 113 0.034188
山东省 6 178 0.032609
福建省 3 96 0.030303
云南省 2 73 0.026667
----------