·需求:
    导入文件,查看原始数据
    将人口数据和各州简称数据进行合并
    将合并的数据重复的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-人口分析相关推荐

  1. Kaggle经典数据分析项目:泰坦尼克号生存预测!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:陈锴,中山大学,Datawhale成员 最近有很多读者留言,希望能 ...

  2. python数据挖掘电影评分分析_Pyhon数据分析项目——男女电影评分差异比较

    <用 Python 玩转数据>数据分析项目 一.程序功能 基于 MovieLens 100k 数据集中男性女性对电影的评分来判断男性还是女性电影 评分的差异性更大. 二.数据来源 数据集下 ...

  3. python共享单车案例分析_python分析数据分析项目:共享单车租用情况影响因素探索分析...

    python分析数据分析项目:共享单车租用情况影响因素探索分析

  4. 大数据分析项目成功的五项基本原则

    转载自:http://www.itongji.cn/article/060521H2013.html 大数据市场目前的焦点问题是:从社交网络.APP和市场调查等多种数据源收集海量数据容易,但真正产生商 ...

  5. 数据挖掘与数据分析项目链家租房数据(一)数据爬虫

    数据挖掘与数据分析项目链家租房数据(一)数据爬虫 今日无聊将一个过去做的链家数据分析项目弄上来,当时是某面试,三天时间完成,主要是供大家抄代码和分享一下思考点,这一章是爬虫部分. 网站原图 结果截图 ...

  6. 5.Python数据分析项目之文本分类-自然语言处理

    1.总结 预测类数据分析项目 流程 具体操作 基本查看 查看缺失值(可以用直接查看方式isnull.图像查看方式查看缺失值missingno).查看数值类型特征与非数值类型特征.一次性绘制所有特征的分 ...

  7. 如何做一个优秀的数据分析项目?

    上一篇我们普及了[数据分析项目,是什么?为什么我没做过?].今天我们系统讲解一下:如何做一个优秀的数据分析项目.首先大家要明白,并不是所有的项目,都需要找一个万人大会堂,拉着横幅,董事长总经理轮流上台 ...

  8. 数据分析项目-合集-day02

    数据分析项目-合集-day02 需求: - 导入文件,查看原始数据 - 将人口数据和各州的简称数据进行合并 - 将合并的数据中重复的abbreviation进行删除 - 查看存在缺失数据的列 - 找到 ...

  9. 如何通过网络数据的获取,做出这些数据分析项目?

    作者 | AlfredWu 来源 | Alfred数据室 最近有很多人在问,我是如何收集网络的数据,如何进行数据处理.数据分析以及可视化呈现的. 也有人问的更具体,关于Python数据分析的一些问题. ...

  10. 让你能进“大厂”的数据分析项目是长怎样?全套路线(建议收藏)

    <算法 + 数据结构>全套路线(建议收藏) 前言   所谓活到老,学到老,虽然我感觉自己已经学了很多算法了,但是昨天熬夜整理完以后发现,自己还是个弟弟,实在忍不住了,打算把 算法学习路线 ...

最新文章

  1. linux命令find命令详解
  2. 清瘦的记录者: 一个比dbutils更小巧、好用的的持久化工具
  3. 微软某员工后悔跳槽阿里:工资才多20万不到,天天加班快崩溃!
  4. Win10双系统CentOS7安装完无法启动Win10的解决方法
  5. 500元辛苦费,求一C#算法,自由定义表达式
  6. 神经网络与机器学习 笔记—反向传播算法(BP)
  7. oracle dbv使用详解
  8. Django非常简单的安装方法
  9. MSMQ(MicroSoft Message Queue,微软消息队列)
  10. php html页面获取session,怎么在html中获取session变量
  11. Atitit. Atiposter 发帖机版本历史 编年史
  12. MATLAB导出矢量图
  13. 大时代背景下商业地产的数十年转型发展之路
  14. 2019年计算机视觉综述论文汇总
  15. 罗格斯大学计算机信息工程专业排名,罗格斯大学硕士统计学专业排名?这一些重点迟早得掌握...
  16. RW08-7B(七管)收音机焊接
  17. 迅歌KTV服务器各型号,2017年ktv必点歌曲排行榜(4页)-原创力文档
  18. 理想汽车IPO,与特斯拉之间还差了20个蔚来
  19. 欧几里得算法求解最大公因数详解
  20. JAVA时间存储类Period和Duration

热门文章

  1. STM32F407ZGT6串口通信讲解
  2. UVA 10798 Be wary of Roses (BFS+几何状态对称)*
  3. 剑问天下java_Java并发编程精讲
  4. C语言hist()函数第一篇
  5. 南瑞通讯管理机测试软件,NSC2200E 通讯管理机
  6. Android——体重计算器
  7. C++string中的find()函数
  8. OpenSSL 编程 二:搭建 CA
  9. 基于Python的通用、可扩展的图卷积神经网络
  10. 三界SGC多功能去中心化平台