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 人口密度案例分析的更多相关文章

  1. 数据分析06 /pandas高级操作相关案例:人口案例分析、2012美国大选献金项目数据分析

    数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 目录 数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 1. ...

  2. 主成分分析PCA数据降维原理及python应用(葡萄酒案例分析)

    目录 主成分分析(PCA)——以葡萄酒数据集分类为例 1.认识PCA (1)简介 (2)方法步骤 2.提取主成分 3.主成分方差可视化 4.特征变换 5.数据分类结果 6.完整代码 总结: 1.认识P ...

  3. LDA线性判别分析原理及python应用(葡萄酒案例分析)

    目录 线性判别分析(LDA)数据降维及案例实战 一.LDA是什么 二.计算散布矩阵 三.线性判别式及特征选择 四.样本数据降维投影 五.完整代码 结语 一.LDA是什么 LDA概念及与PCA区别 LD ...

  4. ENode框架Conference案例分析系列之 - 文章索引

    ENode框架Conference案例分析系列之 - 业务简介 ENode框架Conference案例分析系列之 - 上下文划分和领域建模 ENode框架Conference案例分析系列之 - 架构设 ...

  5. SQL性能优化案例分析

    这段时间做一个SQL性能优化的案例分析, 整理了一下过往的案例,发现一个比较有意思的,拿出来给大家分享. 这个项目是我在项目开展2期的时候才加入的, 之前一期是个金融内部信息门户, 里面有个功能是收集 ...

  6. CSS3-3D制作案例分析实战

    一.前言 上一节,介绍了基础的CSS3 3D动画原理实现,也举了一个小小的例子来演示,但是有朋友跟我私信说想看看一些关于CSS3 3D的实例,所以在这里为了满足一下大家的需求,同时也为了以后能够更好的 ...

  7. 实时控制软件设计第一周作业-汽车ABS软件系统案例分析

    汽车ABS软件系统案例分析 ABS 通过控制作用于车轮制动分泵上的制动管路压力,使汽车在紧急刹车时车轮不会抱死,这样就能使汽车在紧急制动时仍能保持较好的方向稳定性. ABS系统一般是在普通制动系统基础 ...

  8. 个人作业-Week2 案例分析

    微软必应词典客户端的案例分析 第一部分 调研,评测 1)bug: 运行平台:iOS 10.0.2 必应词典版本:4.2.2 1. bug标题:词库加载错误 bug详细描述:学习界面中的经典词库出国考试 ...

  9. 【MySQL】排序原理与案例分析

    前言 排序是数据库中的一个基本功能,MySQL也不例外.用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐 ...

  10. 个人作业-Week2:案例分析

    截止时间:2016年9月25日24:00. 很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课? 都不对, 软件工程有 ...

随机推荐

  1. C#使用ParseExact方法将字符串转化为日期格式

    private void btn_Convert_Click(object sender, EventArgs e) { #region 针对Windows 7系统 string s = string ...

  2. 理解 docker volume

    1. docker volume 简介 文章 介绍了 docker image,它由一系列只读层构成,通过 docker image 可以提高镜像构建,存储和分发的效率,节省时间和存储空间.然而 do ...

  3. STM32CubeMX教程22 FSMC - 8080并行接口TFT-LCD驱动

    1.准备材料 开发板(正点原子stm32f407探索者开发板V2.4) STM32CubeMX软件(Version 6.10.0) 野火DAP仿真器 keil µVision5 IDE(MDK-Arm ...

  4. java - 正确关闭流

    package stream; import java.io.*; public class FileReaderTest { public static void main(String[] arg ...

  5. [转帖]Arm发布CortexX4,功耗可降低40%

    https://www.eet-china.com/mp/a224124.html ARM 发布了新一代的移动处理器内核,包括 Cortex-X4.Cortex-A720.Cortex-A520,预计 ...

  6. [转帖]VMware-ovftool命令行部署与导出镜像

    ESXI6.0之后管理为WEB,OVF导出/部署是个渣渣,如果虚拟机文件过大,一般会报网络异常中断而失败,可使用官方ovftool工具解决,快而方便,支持linux和Mac OSX,可脚本操作,批量处 ...

  7. [转帖]iptables命令详解和举例(完整版)

    1.防火墙概述 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底 ...

  8. Mysql数据库查看Database的大小的方法

    最简单的方法为: select concat(round(sum(data_length/1024/1024),2),'MB') as data from INFORMATION_SCHEMA.tab ...

  9. Booking.com如何在毫秒内搜索数百万个地点

    译自:How Booking.com Searches Through Millions of Locations in Milliseconds Booking.com是一家与酒店.旅馆.度假租赁等 ...

  10. axios取消请求

    为什么会有取消请求-文件上传 比如有这样的场景,在一个弹窗中有文件上传. 当用户进行文件上传的时候,发现不想进行文件上传了,又点击了弹窗中的取消. 那么是不是应该去取消本次的上传操作,此时就需要使用取 ...