数据分析实战 -----美国人口密度
创始人
2024-11-17 08:05:07
0

 资源包地址

链接:百度网盘 请输入提取码 

提取码:6666 

步骤

导入库

 import numpy as np import pandas as pd 首先导入文件,并查看数据样本   # 州的全称和州名称简写对应关系表 abb = pd.read_csv('./data/state-abbrevs.csv') # 州的全称和面积表 areas = pd.read_csv('./data/state-areas.csv') # 州名称的简写和面积表,包括年龄和年份信息 population = pd.read_csv('./data/state-population.csv') display(abb.head(), areas.head(), population.head())
 

合并pop与abbrevs两个DataFrame,分别依据state/region列和abbreviation列来合并。  为了保留所有信息,使用外合并。  
# 根据某一列或几列来合并 # 默认合并的规则是查找字段名称相同的列 # 合并的列在内容上,要存在一对一、一对多、多对多的关系 pd.merge(left=population, right=abb, left_on='state/region', right_on='abbreviation', how='inner

看数据是否缺少

abb.abbreviation.unique() population['state/region'].unique()

# PR USA这两个简称,在abb表中,是不存在的 set(population['state/region'].unique()) - set(abb.abbreviation.unique())  

{'PR', 'USA'}

内合并没有,外合并有

temp = pd.merge(left=population, right=abb, left_on='state/region', right_on='abbreviation', how='outer')

# USA不是一个州,是美国的全称 temp.loc[temp['state/region'] == 'USA']

### 查看存在缺失数据的列。  使用.isnull().any(),只有某一列存在一个缺失数据,就会显示True。

### 根据数据是否缺失情况显示数据,如果缺失为True,那么显示 temp.loc[temp.isnull().any(axis=1)]

 
### 找到有哪些state/region使得state的值为NaN,使用unique()查看非重复值 temp.loc[temp.isnull().any(axis=1), 'state/region'].unique()

### 为找到的这些state/region的state项补上正确的值,从而去除掉state这一列的所有NaN! 

经过分析,只有PR和USA对应的state有空值,所以只需要填写这两组数据即可  USA  -->  USA PR  -->  

# 面积表中存在PR州对应的全称 Puerto Rico # 简写和全称对应不上关系的时候的处理逻辑??  业务方确认 set(areas['state']) - set(abb['state']) 

{'Puerto Rico'}

temp.loc[temp['state/region'] == 'PR', 'state'] = 'Puerto Rico' # 查看使得state为空的州还有哪些 temp.loc[temp['state'].isnull(), 'state/region'].unique()

# 由于USA是全美国的数据,不需要保留,可以删除 # 把sate/region == USA的数据删除   
usa_index = temp.loc[temp['state/region'] == 'USA'].index pop_abb = temp.drop(labels=usa_index).copy() pop_abb.isnull().any() pop_abb = pop_abb.drop(labels=['abbreviation'], axis=1)

### 继续寻找存在缺失数据的列 

 # 由于2000年之前,并没有统计过PR州的人口数据,所以删除 pop_abb.loc[pop_abb.population.isnull()] pop_abb.isnull().any() pop_abb.dropna().isnull().any()
 

# 删除人口为空的所有行  
pop_abb.dropna(inplace=True) pop_abb.head()

areas.head()

# 使用外合并,保证数据的完整  
total = pd.merge(left=pop_abb, right=areas, how='outer') ### 找出2010年的全民人口数据,df.query(查询语句) pop_2010_total = total.query('year == 2010 & ages == "total"') 或者 con1 = total.year == 2010 con2 = total.ages == 'total' total.loc[con1 & con2]

### 对查询结果进行处理,以state列作为新的行索引:set_index 

 total['density'] = total['population']/total['area (sq. mi)'] total
 

density_df = total.query('year == 2012 & ages == "total"').sort_values('density', ascending=False) density_df.set_index('state').head()

相关内容

热门资讯

安卓系统怎么设壁纸桌面,轻松设... 亲爱的手机控们,你是不是也和我一样,对手机壁纸和桌面布局情有独钟?想要让你的安卓手机焕然一新,个性化...
安卓系统6.0怎么root教程... 亲爱的安卓用户们,你是否曾梦想过让你的手机拥有超能力?没错,我说的就是root!今天,就让我带你一步...
安卓2.2系统当贝市场,体验升... 你有没有想过,那些老旧的安卓设备,虽然已经不再流行,但它们在某个角落里,可能还在默默无闻地发挥着余热...
安卓14系统为啥卡顿,探究性能... 最近是不是发现你的安卓手机有点儿不给力了?打开应用慢吞吞的,滑动页面卡得像老牛拉车,这可真是让人头疼...
采集无锡安卓系统的公司,技术驱... 你有没有想过,在这个科技飞速发展的时代,手机操作系统的重要性简直不言而喻?而在中国,有一个城市,它的...
安卓新系统有问题,揭秘常见故障... 最近你的安卓手机是不是也遇到了点小麻烦?别急,让我来给你细细道来,看看这个新系统到底有哪些让人头疼的...
u盘安卓随身系统,U盘随身携带... 你有没有想过,把安卓系统随身携带,随时随地都能用上?没错,今天就要给你揭秘一个神奇的小玩意——u盘安...
安卓手机有俩系统吗,体验双重魅... 你有没有发现,安卓手机的世界里,好像藏着两个神秘的小秘密呢?没错,就是那个让人又爱又恨的安卓系统。今...
安卓系统恢复怎么搞,轻松应对系... 手机突然卡壳了,系统崩溃了,是不是瞬间感觉整个人都不好了?别慌,今天就来教你一招,让你的安卓手机重获...
windows和安卓系统的关系... 你有没有想过,为什么你的手机和电脑有时候会像好朋友一样,互相配合得天衣无缝?其实,这背后有一个大大的...
安卓11怎么降级系统,轻松还原... 你有没有发现,安卓11系统虽然功能强大,但有时候也会有点小闹心呢?比如,某些应用不支持,或者系统运行...
正版授权!游戏推荐斗牛房卡出售... 今 日消息,天蝎大厅房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
推荐一款!金花房卡批发女娲大厅... 女娲大厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
安卓系统误删无法开机,紧急修复... 手机里的照片、联系人、重要文件,说没就没了!最近,身边的朋友纷纷向我抱怨,他们的安卓手机因为误删数据...
玩家攻略,牛牛充值房卡新大圣/... 玩家攻略,牛牛充值房卡新大圣/新道游/微信链接房卡购买渠道新大圣/新道游是一款非常受欢迎的游戏,咨询...
一分钟了解!牛牛房卡出售红桃众... 红桃众娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
IA解析/金花房卡批发玄灵大厅... IA解析/金花房卡批发玄灵大厅/微信链接房卡最低价格Sa9Ix苹果iPhone 17手机即将进入量产...
我来教你/牛牛房卡代理新518... 新518互娱房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3...
正规平台有哪些,金花房卡代理零... 微信游戏中心:九天大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
荣耀magic是安卓系统吗,探... 你有没有听说过荣耀Magic这款手机?最近它可是手机圈里的热门话题呢!很多人都在问,荣耀Magic是...