Pandas 人口密度案例分析
from turtle import left
import pandas as pd
"""
需求:
1.导入文件,查看原始数据
2.将人口数据和各州简称数据进行合并
3.将合并的数据中重复的abbreviation列进行删除
4.查看存在缺失数据的列
5.找到有哪些state/region使得state的值为NaN,进行去重操作
6.为找到的这些state/region的state项补上正确的值,从而去除掉state这一列的所有NaN
7.合并各州面积数据areas
8.我们会发现area(sq.mi)这一列有缺失数据,找出是哪些行
9.去除含有缺失数据的行
10.找出2010年的全民人口数据
11.计算各州的人口密度
12.排序,并找出人口密度最高的州
"""
# 1.导入文件,查看原始数据
# state:州的全称,abbreviation:州的简称
add = pd.read_csv("./state-abbrevs.csv")
# state:州的全称,area:州的面积
area = pd.read_csv("./state-areas.csv")
# state/region:州的简称,ares:年龄,year:年,population:人口数量
pop = pd.read_csv("./state-population.csv")
# 2.将人口数据和各州简称数据进行合并
add_pop = pd.merge(left=add, right=pop,
left_on="abbreviation", right_on="state/region", how="outer")
# 3.将合并的数据中重复的abbreviation列进行删除
add_pop.drop(labels="abbreviation", axis=1, inplace=True)
# 4.查看存在缺失数据的列
# print(add_pop.isnull().any(axis=0))
# 5.找到有哪些state/region使得state的值为NaN,进行去重操作(将state中的空值对应的简称找到,然后对简称进行去重)
"""
思路:
1将state中的空值定位到
abb_pop['state'].isnu11()
2.将上述的布尔值作为源数据的行索引
# abb_pop.loc[abb_pop['state'].isnu11()]#将state中空对应的行数据取出
3.将简称取出
abb_pop.loc[abb_pop['state'].isnull()]['state/region']
#4,对简称去重
abb_pop.loc[abb_pop['state'].isnull()]['state/region'].unique()
"""
print(add_pop.loc[add_pop["state"].isnull()]
["state/region"].unique()) # ['PR' 'USA']
# 6.为找到的这些state/region的state项补上正确的值,从而去除掉state这一列的所有NaN
# 6.1 先将USA的全称对应的空数据进行批量赋值
# 6.1.1 将USA对应的行数据找出来
print(add_pop["state/region"] == "USA")
print(add_pop.loc[add_pop["state/region"] == "USA"]) # 将USA对应的为空对应的行数据取出
# 6.1.2将USA对应的全程空的行索引取出
indexs = add_pop.loc[add_pop["state/region"] == "USA"].index
# 6.1.3将add_pop中的state为空的进行赋值
add_pop.loc[indexs, "state"] = "United State"
# 6.2 将PR的全称对应的空数据进行批量赋值
# 6.2.1 将PR对应的行数据找出来
print(add_pop["state/region"] == "PR")
print(add_pop.loc[add_pop["state/region"] == "PR"])
# 6.2.2将PR对应的全称空的行索引取出
indexs1 = add_pop.loc[add_pop["state/region"] == "PR"].index
# 6.2.3将add_pop中的state为空的进行赋值
add_pop.loc[indexs1, "state"] = "Puerto Rico"
# 7.合并各州面积数据areas
add_pop_area = pd.merge(left=add_pop, right=area, how="outer")
print(add_pop_area)
# 8.我们会发现area(sq.mi)这一列有缺失数据,找出是哪些行
indexs2 = add_pop_area[add_pop_area["area (sq. mi)"].isnull() == True].index
add_pop_area.drop(labels=indexs2, axis=0, inplace=True)
# 10.找出2010年的全民人口数据
print(add_pop_area.query("ages == 'total' & year == 2010"))
# 11.计算各州的人口密度(人口 / 面积)
add_pop_area["midu"] = add_pop_area["population"] / \
add_pop_area["area (sq. mi)"]
# 12.排序,并找出人口密度最高的州
add_pop_area_sort = add_pop_area.sort_values(
by="midu", axis=0, ascending=False)
print(add_pop_area_sort.loc[0]["state"])
add_pop_area_sort.to_csv("./add_pop_area_sort.csv")
Pandas 人口密度案例分析的更多相关文章
- 数据分析06 /pandas高级操作相关案例:人口案例分析、2012美国大选献金项目数据分析
数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 目录 数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 1. ...
- 主成分分析PCA数据降维原理及python应用(葡萄酒案例分析)
目录 主成分分析(PCA)——以葡萄酒数据集分类为例 1.认识PCA (1)简介 (2)方法步骤 2.提取主成分 3.主成分方差可视化 4.特征变换 5.数据分类结果 6.完整代码 总结: 1.认识P ...
- LDA线性判别分析原理及python应用(葡萄酒案例分析)
目录 线性判别分析(LDA)数据降维及案例实战 一.LDA是什么 二.计算散布矩阵 三.线性判别式及特征选择 四.样本数据降维投影 五.完整代码 结语 一.LDA是什么 LDA概念及与PCA区别 LD ...
- ENode框架Conference案例分析系列之 - 文章索引
ENode框架Conference案例分析系列之 - 业务简介 ENode框架Conference案例分析系列之 - 上下文划分和领域建模 ENode框架Conference案例分析系列之 - 架构设 ...
- SQL性能优化案例分析
这段时间做一个SQL性能优化的案例分析, 整理了一下过往的案例,发现一个比较有意思的,拿出来给大家分享. 这个项目是我在项目开展2期的时候才加入的, 之前一期是个金融内部信息门户, 里面有个功能是收集 ...
- CSS3-3D制作案例分析实战
一.前言 上一节,介绍了基础的CSS3 3D动画原理实现,也举了一个小小的例子来演示,但是有朋友跟我私信说想看看一些关于CSS3 3D的实例,所以在这里为了满足一下大家的需求,同时也为了以后能够更好的 ...
- 实时控制软件设计第一周作业-汽车ABS软件系统案例分析
汽车ABS软件系统案例分析 ABS 通过控制作用于车轮制动分泵上的制动管路压力,使汽车在紧急刹车时车轮不会抱死,这样就能使汽车在紧急制动时仍能保持较好的方向稳定性. ABS系统一般是在普通制动系统基础 ...
- 个人作业-Week2 案例分析
微软必应词典客户端的案例分析 第一部分 调研,评测 1)bug: 运行平台:iOS 10.0.2 必应词典版本:4.2.2 1. bug标题:词库加载错误 bug详细描述:学习界面中的经典词库出国考试 ...
- 【MySQL】排序原理与案例分析
前言 排序是数据库中的一个基本功能,MySQL也不例外.用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐 ...
- 个人作业-Week2:案例分析
截止时间:2016年9月25日24:00. 很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课? 都不对, 软件工程有 ...
随机推荐
- zookeeper源码(06)ZooKeeperServer及子类
ZooKeeperServer 实现了单机版zookeeper服务端功能,子类实现了更加丰富的分布式集群功能: ZooKeeperServer |-- QuorumZooKeeperServer |- ...
- linux 开机默认进入命令行模式
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- Python定位错误:段错误 (核心已转储)
技术背景 在各种编程语言中都有可能会遇到这样一个报错:"段错误 (核心已转储)".显然是编写代码的过程中有哪里出现了问题,但是这个报错除了这几个字以外没有任何的信息,我们甚至不知道 ...
- [转帖]Python执行Linux系统命令的4种方法
https://www.cnblogs.com/pennyy/p/4248934.html (1) os.system 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 代码如下: sys ...
- [转帖]TiDB的使用限制
https://docs.pingcap.com/zh/tidb/stable/tidb-limitations 本文会将详细描述 TiDB 中常见的使用限制,包括:标识符长度,最大支持的数据库.表. ...
- [转帖]xtrabackup2.4备份恢复脚本
https://developer.aliyun.com/article/534230#:~:text=xtrabackup2.4%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8 ...
- [转帖]s3对象存储挂载到本地文件夹
https://www.zhangzhuo.ltd/articles/2021/10/22/1634888049032.html 一.s3fs工具 s3fs-fuse 是一个采用 c++ 开发的开源应 ...
- [转帖]如何在Linux系统中使用命令发送邮件
https://zhuanlan.zhihu.com/p/96897532 Linux系统更多的被用来做服务器系统,在运维的过程中难免我们需要编写脚本监控一些指标并定期发送邮件. 本教程将介绍如何在L ...
- [转帖]ssh时不输入YES
vim /etc/ssh/ssh_config 60行新添加 StrictHostKeyChecking no
- [转帖]聊聊我对 GraphQL 的一些认知
https://www.modb.pro/db/139451 作者简介:haohongfan 是 Apache Dubbogo Committer,目前就职于京东,擅长高并发架构设计.公众号 HHFC ...