数据分析项目2-人口分析
·需求:
导入文件,查看原始数据
将人口数据和各州简称数据进行合并
将合并的数据重复的abbreviation列进行删除
查看存在缺失数据的列
找到有哪些state/region使得state的值为NaN,进行去重操作
为找到的这些state/region的state项补上正确的值,从而去除掉state这一列的所有NaN
合并各州面积数据areas
我们会发现area(sq.mi)这一列有缺失数据,找出是哪些行
去除含有缺失数据的行
找出2010年全民人口数据
计算各州的人口密度
排序,并找出人口密度最高的州
import numpy as np
import pandas as pd# 导入数据,查看原始数据
abb = pd.read_csv("./data/state-abbrevs-Copy1.csv") #state(州的全称)abbreviation(州的简称)
abbstate abbreviation
0 Alabama AL
1 Alaska AK
2 Arizona AZ
3 Arkansas AR
4 California CA
5 Colorado CO
6 Connecticut CT
7 Delaware DE
8 District of Columbia DC
9 Florida FL
10 Georgia GA
11 Hawaii HI
12 Idaho ID
13 Illinois IL
14 Indiana IN
15 Iowa IA
16 Kansas KS
17 Kentucky KY
18 Louisiana LA
19 Maine ME
20 Montana MT
21 Nebraska NE
22 Nevada NV
23 New Hampshire NH
24 New Jersey NJ
25 New Mexico NM
26 New York NY
27 North Carolina NC
28 North Dakota ND
29 Ohio OH
30 Oklahoma OK
31 Oregon OR
32 Maryland MD
33 Massachusetts MA
34 Michigan MI
35 Minnesota MN
36 Mississippi MS
37 Missouri MO
38 Pennsylvania PA
39 Rhode Island RI
40 South Carolina SC
41 South Dakota SD
42 Tennessee TN
43 Texas TX
44 Utah UT
45 Vermont VT
46 Virginia VA
47 Washington WA
48 West Virginia WV
49 Wisconsin WI
50 Wyoming WYareas= pd.read_csv("./data/state-areas-Copy1.csv")#area(sq.mi)州的面积
areas
state area (sq. mi)
0 Alabama 52423
1 Alaska 656425
2 Arizona 114006
3 Arkansas 53182
4 California 163707
5 Colorado 104100
6 Connecticut 5544
7 Delaware 1954
8 Florida 65758
9 Georgia 59441
10 Hawaii 10932
11 Idaho 83574
12 Illinois 57918
13 Indiana 36420
14 Iowa 56276
15 Kansas 82282
16 Kentucky 40411
17 Louisiana 51843
18 Maine 35387
19 Maryland 12407
20 Massachusetts 10555
21 Michigan 96810
22 Minnesota 86943
23 Mississippi 48434
24 Missouri 69709
25 Montana 147046
26 Nebraska 77358
27 Nevada 110567
28 New Hampshire 9351
29 New Jersey 8722
30 New Mexico 121593
31 New York 54475
32 North Carolina 53821
33 North Dakota 70704
34 Ohio 44828
35 Oklahoma 69903
36 Oregon 98386
37 Pennsylvania 46058
38 Rhode Island 1545
39 South Carolina 32007
40 South Dakota 77121
41 Tennessee 42146
42 Texas 268601
43 Utah 84904
44 Vermont 9615
45 Virginia 42769
46 Washington 71303
47 West Virginia 24231
48 Wisconsin 65503
49 Wyoming 97818
50 District of Columbia 68
51 Puerto Rico 3515pop= pd.read_csv("./data/state-population-Copy1.csv")#area(sq.mi)州的面积
pop
state/region ages year population
0 AL under18 2012 1117489.0
1 AL total 2012 4817528.0
2 AL under18 2010 1130966.0
3 AL total 2010 4785570.0
4 AL under18 2011 1125763.0
... ... ... ... ...
2539 USA total 2010 309326295.0
2540 USA under18 2011 73902222.0
2541 USA total 2011 311582564.0
2542 USA under18 2012 73708179.0
2543 USA total 2012 313873685.0
2544 rows × 4 columns#将人口数据和各州简称数据进行合并
abb_pop = abb.merge(pop,left_on="abbreviation",right_on="state/region",how="outer")
abb_pop
abb_pop.head()
state state/region ages year population
0 Alabama AL under18 2012 1117489.0
1 Alabama AL total 2012 4817528.0
2 Alabama AL under18 2010 1130966.0
3 Alabama AL total 2010 4785570.0
4 Alabama AL under18 2011 1125763.0
# 查看存在缺失数据的列
# 方法一:isnull,notnull,any,all
abb_pop.isnull().any()
state True
state/region False
ages False
year False
population True
dtype: bool# 方法二:
abb_pop.info()<class 'pandas.core.frame.DataFrame'>
Int64Index: 2544 entries, 0 to 2543
Data columns (total 5 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 state 2448 non-null object 1 state/region 2544 non-null object 2 ages 2544 non-null object 3 year 2544 non-null int64 4 population 2524 non-null float64
dtypes: float64(1), int64(1), object(3)
memory usage: 119.2+ KB# 找到有哪些state/region使得state的值为NaN,进行去重操作(将state中的空值对应的简称找到,且dui简称进行去重)
abb_pop.head()
# 思路:可以将state这一列中的空值对应的行数据取出,从该行数据中就可以去除简称的值# 1.将state中的控制定位
abb_pop["state"].isnull()
# 2.将原数据的布尔值作为行索引
abb_pop[abb_pop["state"].isnull()]
#3.将简称取出
abb_pop[abb_pop["state"].isnull()]["state/region"]
# 4.对简称去重
abb_pop[abb_pop["state"].isnull()]["state/region"].unique()array(['PR', 'USA'], dtype=object)
# 结论:只有PR和USA对应的全称数据为空值# 为找到的这些state/region的state项补上正确的值,从而去除掉state这一列的所有NaN
# 思考:填充该需求中的空值可不可以用fillna?# - 不可以。fillna可以使用空的紧邻值进做填充。fillna(value=”xxx)使用制订的值填充空值# 使用给元素赋值的方式进行填充 # 1.先给USA的全称对应的空值进行批量赋值(行数据中就存在state的空值)
abb_pop["state/region"]=="USA"
abb_pop["state"][abb_pop["state/region"]=="USA"]="United States"
abb_pop[abb_pop["state"].isnull()]["state/region"].unique()abb_pop["state/region"]=="PR"
abb_pop["state"][abb_pop["state/region"]=="PR"]="Puerto Ric0"
abb_pop[abb_pop["state"].isnull()]["state/region"].unique()#我们会发现area(sq.mi)这一列有缺失数据,找出是哪些行
abb_pop_area["area (sq. mi)"].isnull()
abb_pop_area[abb_pop_area["area (sq. mi)"].isnull()]
indexs = abb_pop_area[abb_pop_area["area (sq. mi)"].isnull()].index# 去除含有缺失数据的行
abb_pop_area.drop(labels=indexs,inplace=True)# 找出2010年的全民人口数据(基于df做条件查询)
abb_pop_area.query('ages == "total" & year == 2010')# 计算各州的人口密度
abb_pop_area["midu"]=abb_pop_area["population"]/abb_pop_area[("area (sq. mi)")]
abb_pop_areastate state/region ages year population area (sq. mi) midu
0 Alabama AL under18 2012.0 1117489.0 52423.0 21.316769
1 Alabama AL total 2012.0 4817528.0 52423.0 91.897221
2 Alabama AL under18 2010.0 1130966.0 52423.0 21.573851
3 Alabama AL total 2010.0 4785570.0 52423.0 91.287603
4 Alabama AL under18 2011.0 1125763.0 52423.0 21.474601
... ... ... ... ... ... ... ...
2444 Wyoming WY total 1991.0 459260.0 97818.0 4.695046
2445 Wyoming WY under18 1991.0 136720.0 97818.0 1.397698
2446 Wyoming WY under18 1990.0 136078.0 97818.0 1.391135
2447 Wyoming WY total 1990.0 453690.0 97818.0 4.638103
2544 Puerto Rico NaN NaN NaN NaN 3515.0 NaN
2449 rows × 7 columns# 排序,并找出人口密度最高的州
abb_pop_area.sort_values(by = "midu",ascending = False)["state"].iloc[0]
'District of Columbia'
数据分析项目2-人口分析相关推荐
- Kaggle经典数据分析项目:泰坦尼克号生存预测!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:陈锴,中山大学,Datawhale成员 最近有很多读者留言,希望能 ...
- python数据挖掘电影评分分析_Pyhon数据分析项目——男女电影评分差异比较
<用 Python 玩转数据>数据分析项目 一.程序功能 基于 MovieLens 100k 数据集中男性女性对电影的评分来判断男性还是女性电影 评分的差异性更大. 二.数据来源 数据集下 ...
- python共享单车案例分析_python分析数据分析项目:共享单车租用情况影响因素探索分析...
python分析数据分析项目:共享单车租用情况影响因素探索分析
- 大数据分析项目成功的五项基本原则
转载自:http://www.itongji.cn/article/060521H2013.html 大数据市场目前的焦点问题是:从社交网络.APP和市场调查等多种数据源收集海量数据容易,但真正产生商 ...
- 数据挖掘与数据分析项目链家租房数据(一)数据爬虫
数据挖掘与数据分析项目链家租房数据(一)数据爬虫 今日无聊将一个过去做的链家数据分析项目弄上来,当时是某面试,三天时间完成,主要是供大家抄代码和分享一下思考点,这一章是爬虫部分. 网站原图 结果截图 ...
- 5.Python数据分析项目之文本分类-自然语言处理
1.总结 预测类数据分析项目 流程 具体操作 基本查看 查看缺失值(可以用直接查看方式isnull.图像查看方式查看缺失值missingno).查看数值类型特征与非数值类型特征.一次性绘制所有特征的分 ...
- 如何做一个优秀的数据分析项目?
上一篇我们普及了[数据分析项目,是什么?为什么我没做过?].今天我们系统讲解一下:如何做一个优秀的数据分析项目.首先大家要明白,并不是所有的项目,都需要找一个万人大会堂,拉着横幅,董事长总经理轮流上台 ...
- 数据分析项目-合集-day02
数据分析项目-合集-day02 需求: - 导入文件,查看原始数据 - 将人口数据和各州的简称数据进行合并 - 将合并的数据中重复的abbreviation进行删除 - 查看存在缺失数据的列 - 找到 ...
- 如何通过网络数据的获取,做出这些数据分析项目?
作者 | AlfredWu 来源 | Alfred数据室 最近有很多人在问,我是如何收集网络的数据,如何进行数据处理.数据分析以及可视化呈现的. 也有人问的更具体,关于Python数据分析的一些问题. ...
- 让你能进“大厂”的数据分析项目是长怎样?全套路线(建议收藏)
<算法 + 数据结构>全套路线(建议收藏) 前言 所谓活到老,学到老,虽然我感觉自己已经学了很多算法了,但是昨天熬夜整理完以后发现,自己还是个弟弟,实在忍不住了,打算把 算法学习路线 ...
最新文章
- linux命令find命令详解
- 清瘦的记录者: 一个比dbutils更小巧、好用的的持久化工具
- 微软某员工后悔跳槽阿里:工资才多20万不到,天天加班快崩溃!
- Win10双系统CentOS7安装完无法启动Win10的解决方法
- 500元辛苦费,求一C#算法,自由定义表达式
- 神经网络与机器学习 笔记—反向传播算法(BP)
- oracle dbv使用详解
- Django非常简单的安装方法
- MSMQ(MicroSoft Message Queue,微软消息队列)
- php html页面获取session,怎么在html中获取session变量
- Atitit. Atiposter 发帖机版本历史 编年史
- MATLAB导出矢量图
- 大时代背景下商业地产的数十年转型发展之路
- 2019年计算机视觉综述论文汇总
- 罗格斯大学计算机信息工程专业排名,罗格斯大学硕士统计学专业排名?这一些重点迟早得掌握...
- RW08-7B(七管)收音机焊接
- 迅歌KTV服务器各型号,2017年ktv必点歌曲排行榜(4页)-原创力文档
- 理想汽车IPO,与特斯拉之间还差了20个蔚来
- 欧几里得算法求解最大公因数详解
- JAVA时间存储类Period和Duration