数据分析数据结构和算法分析

手把手教你数据分析(2)--缺失值处理

2018-08-26  本文已影响5人  李明轩Matthew

系列文章
手把手教你数据分析(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
----------
上一篇 下一篇

猜你喜欢

热点阅读