IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 人口分析案例 -> 正文阅读

[开发工具]人口分析案例

  • 需求:
    • 导入文件,查看原始数据
    • 将人口数据和各州简称数据进行合并
    • 将合并的数据中重复的abbreviation列进行删除
    • 查看存在缺失数据的列
    • 找到有哪些state/region使得state的值为NaN,进行去重操作
    • 为找到的这些state/region的state项补上正确的值,从而去除掉state这一列的所有NaN
    • 合并各州面积数据areas
    • 我们会发现area(sq.mi)这一列有缺失数据,找出是哪些行
    • 去除含有缺失数据的行
    • 找出2010年的全民人口数据
    • 计算各州的人口密度
    • 排序,并找出人口密度最高的五个州 df.sort_values()
  • 所需环境:jupyter

代码和分析如下:

#导入需要的包 ,如果tab不出来,则需要进行相关包的安装
import numpy as np
import pandas as pd
from pandas import DataFrame
#导入文件,查看原始数据
#三个文件,分别是state-abbrevs.csv,state-areas.csv,state-population.csv
abb = pd.read_csv('./data/state-abbrevs.csv') #state(州的全称) abbreviation(州的简称)
#abb
area = pd.read_csv('./data/state-areas.csv') #state 州的全称 area (sq. mi)(州的面积)
#area
population = pd.read_csv('./data/state-population.csv')# state/region 州的简称 ages年龄 year时间 population 人口数量
#population

原始数据如下图:

?

?

#将人口数据和各州简称数据进行合并
#dataframe的merge是按照两个dataframe共有的column进行连接,两个dataframe必须具有同名的column
#abbreviation和state/regions是内容相同但列索引不同,使用left_on和right_on手动指定merge中左右两边的哪一列作为连接的列
abb_pop = pd.merge(abb,population,left_on='abbreviation',right_on='state/region',how='outer') #outer取并集
abb_pop
#将合并的数据中重复的abbreviation列进行删除
#drop进行删除,labels是指要删除的标签,一个或者是列表形式的多个,axis是指处哪一个轴,columns是指某一列或者多列,level是指等级,针对多重索引的情况,inplaces是否替换原来的dataframe
abb_pop.drop(labels='abbreviation',axis=1,inplace=True)
#查看存在缺失数据的列
#方式一:isnull(),notnull(),any,all
abb_pop.isnull().any(axis=0)
#state  population 这两列中存在空值
#方式二:直接查看这个表的信息
abb_pop.info()
#找到有哪些state/region使得state的值为NaN,进行去重操作(将state中的空值对应的简称找到,且对简称进行去重)
#思路:可以将state这一列中的空值对应的行数据取出,从该行数据中取出简称的值
#1.定位state中的空值
abb_pop['state'].isnull()
#2.将上述的布尔值作为行索引
abb_pop.loc[abb_pop['state'].isnull()]
#3.取出简称
abb_pop.loc[abb_pop['state'].isnull()]['state/region']
#4.对简称去重
abb_pop.loc[abb_pop['state'].isnull()]['state/region'].unique() #unique 去重
#array(['PR', 'USA'], dtype=object) 只有['PR', 'USA']对应的全称为空值

#为找到的这些state/region的state项补上正确的值,从而去除掉state这一列的所有NaN
#思考:填充需求中的空值可以不可以使用fillna?
# - 不可以,fillna可以使用空的紧邻值做填充。fillna(value=‘xxx’)使用指定的值填充空值
#使用元素赋值的方式进行填充

#1.先给USA的全称对应的空值进行批量赋值
#1.1将USA对应的行数据找出(行数据就在state的空值)
abb_pop['state/region'] == 'USA'
#1.2找出USA对应的行数据的索引
indexs = abb_pop.loc[abb_pop['state/region'] == 'USA'].index
#1.3把usa索引所在的行的state列赋值为全称
abb_pop.loc[indexs,'state'] = ' United States of America' 
#PR列同理
abb_pop['state/region'] == 'PR'
indexs = abb_pop.loc[abb_pop['state/region'] == 'PR'].index
#后面的全称随便填的,只要不是空值就行
abb_pop.loc[indexs,'state'] = 'PPPPRRR'
abb_pop.iloc[indexs]
#合并各州面积数据areas
abb_pop_area = pd.merge(abb_pop,area,how='outer')
abb_pop_area
# 我们会发现area(sq.mi)这一列有缺失数据,找出是哪些行
abb_pop_area['area (sq. mi)'].isnull()
indexs = abb_pop_area.loc[abb_pop_area['area (sq. mi)'].isnull()].index
# 去除含有缺失数据的行
abb_pop_area.drop(labels=indexs,axis=0,inplace=True)
# 找出2010年的全民人口数据
#DataFrame.query(expr, inplace=False, **kwargs)query中可以写条件查询语句
abb_pop_area.query('ages == "total" & year == 2010')
# 计算各州的人口密度(各州人口总数除以各州面积)
abb_pop_area['midu'] = abb_pop_area['population'] / abb_pop_area['area (sq. mi)']
# 排序,并找出人口密度最高的五个州 df.sort_values()
abb_pop_area.sort_values(by='midu',axis=0,ascending=False).iloc[0]['state']

?

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:48:40  更:2021-08-12 16:50:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 11:55:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码