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. 很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课? 都不对, 软件工程有 ...
随机推荐
- 昆虫科学院 AtCoder Race Ranking 2023 Autumn
概况 为提高选手们的训练 / 比赛热情,我们(昆虫科学院)通过商讨,在 \(2023-5-25\) 仿照 AtCoder Race Ranking (WTF) 机制,设立了"昆虫科学院 At ...
- Kubernetes security context capability
注:以下内容基于经验主义,不一定对. Linux capability Linux 中,root 作为特权用户,具有执行所有应用的能力.而普通用户只能执行普通应用.如果普通用户需要执行特权应用,需要进 ...
- Android之AMS原理分析
在学习android框架原理过程中,ams的原理非常重要,无论是在面试中还是在自己开发类库过程中都会接触到. 1 简述 ActivityManagerService是Android最核心的服务,负责管 ...
- 使用React简短代码动态生成栅格布局
使用React简短代码动态生成栅格布局 作为 TerminalMACS 的一个子进程模块 - React Web管理端,使用Ant Design Pro作为框架. 本文应用到的知识 1.样式文件les ...
- springboot - 解决使用pagehelper 报 SQL语句异常
原因: mapper.xml 中的sql加上了分号. <select id="search" resultType="***.Table"> sel ...
- 【OpenVINO】基于 OpenVINO Python API 部署 RT-DETR 模型
目录 1. RT-DETR 2. OpenVINO 3. 环境配置 3.1 模型下载环境 3.2 模型部署环境 4. 模型下载与转换 4.1 PaddlePaddle模型下载 4.2 IR模型转换 5 ...
- [粘贴]Introducing Exadata X9M: Dramatically Faster, More Cost Effective, and Easier to Use
https://blogs.oracle.com/exadata/post/exadata-x9m The Exadata Product Management and Development t ...
- [转帖]TNS-12535 TNS-00505的处理方法
硬件说明: 操作系统版本:ORACLE LINUX 6.3 64位 数据库版本:11.2.0.3 64位 问题说明: 在检查数据库的alert日志的时候,发现大量的12170和TNS-12535 ...
- [转帖]Lightning 实操指南
2.2.2 Lightning 实操指南 这一节将介绍如何使用 Lightning 导入数据的实操 2.2.2.1 TiDB Lightning 快速开始 注意 TiDB Lightning 运行后, ...
- [转帖]shell脚本实现文本内容比较交互程序
背景介绍 脚本基于Comm命令进行功能封装,考虑到命令执行前需要对文本进行排序,并且在多文件需要比较内容时可能会导致多个文本混乱,因此使用Shell封装成了一个交互式程序,快速对文件内容进行判断和输出 ...