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. 很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课? 都不对, 软件工程有 ...
随机推荐
- 线段树 hdu 4027
***又是超时的问题,当一个区间全是1时,再去开方和不开方是一样的,所以在这一步不需要再往底层递归了*** #include <iostream> #include <cstdio& ...
- go 接口学习笔记
这里是对接口在汇编层面上转换和实现的小结,详细了解可参考 Go 语言接口的原理 1. 类型转换:结构体到接口 1.1 结构体方法实现接口 package main type Duck interfac ...
- python 基础 | 实现微秒级计时
搬运一个计时代码: import datetime s = datetime.datetime.now() # 开始 # do something e = datetime.datetime.now( ...
- IDE-常用插件
2021-8-25_IDE-常用插件 1. 背景 提升编写代码的舒适度,提升开发效率 2. 常用插件列表 IDE EVal Reset 白嫖付费的golang编辑器,reset插件可以重置golang ...
- pgcacher 的简单学习
pgcacher 的简单学习 学习地址 https://github.com/rfyiamcool/pgcacher https://zhuanlan.zhihu.com/p/551833981 ht ...
- [转帖]003、体系结构之TiKV持久化
TiKV架构和作用 数据持久化 分布式一致性 MVCC 分布式事务 Coprocessor coprocessor : 协同处理器. 可以将一些SQL计算交给TiKV处理.不需要将TiKV所有数据通过 ...
- [转帖]016 Linux 卧槽,看懂进程信息也不难嘛?top、ps
016 Linux 卧槽,看懂进程信息也不难嘛?top.pshttps://my.oschina.net/u/3113381/blog/5455267 1 扒开看看 top 命令参数详情 Linux ...
- OpenEuler切换内核的方法-bcc学习后续
OpenEuler切换内核的方法 摘要 昨天使用OpenEuler 22.03 LTS学习bcc但是一直不行. 没办法切换到CentOS8 还有 Anolis 8 很容易就可以直接还是用了 yum i ...
- KylinV10升级部分软件的简单方法
背景 2022-12-26有同事晚上在群里反馈客户现场的测试环境内存紧张. 我这边第一反应是进程重复了,导致内存使用量飙升. 告知现场使用 ps -ef |grep java |grep caf 发现 ...
- 给无网络的CentOS服务器下载rpm包的一个解决办法
很多公司的服务器为了安全都在内网, 是无法直接连接互联网的, 无法连接互联网就无法使用yum等的包管理器安装rpm包等. 有时候一些rpm包还是能很好的提高性能的, 所以可以使用多种方式获取rpm包进 ...