python-数据分析--案例分析:美国各州人口数据分析

目标:找到美国人口密度最大的5个州


import numpy as np
import pandas as pd
from pandas import Series, DataFrame
#首先导入文件,并查看数据样本
s_abb = pd.read_csv('data/state-abbrevs.csv')
s_abb.head()
s_pop = pd.read_csv('data/state-population.csv')
s_pop.head()
s_areas = pd.read_csv('data/state-areas.csv')
s_areas.head()
abb_pop = pd.merge(s_abb,s_pop,how='outer',left_on='abbreviation',
                  right_on='state/region')
#删除重复的一列
abb_pop = abb_pop.drop('abbreviation',axis=1)
abb_pop
abb_pop.isnull().any(axis=0)
#查看存在缺失数据的列
#使用.isnull().any(),只要某一列存在一个丢失数据,就会显示True
#找到有哪些state/region使得state的值为NaN,使用unique()查看非重复值
abb_pop[abb_pop['state'].isnull()]['state/region'].unique()
#获取到state/region==PR的副本
abb_pop_PR = abb_pop[abb_pop['state/region']=='PR'].copy()
#对副本进行赋值操作
abb_pop_PR['state'] = 'PUERTO'
#再把副本的值赋值给原始的表abb_pop
abb_pop[abb_pop['state/region'] == 'PR'] = abb_pop_PR
#获取到state/region==USA的副本
abb_pop_USA = abb_pop[abb_pop['state/region'] == 'USA'].copy()
#对副本进行赋值操作
abb_pop_USA['state'] = 'America'
#再把副本的值赋值给原始的表abb_pop
abb_pop[abb_pop['state/region'] == 'USA'] = abb_pop_USA
#为找到的这些state/region的state项补上正确的值,
#这样我们便可以去除掉state这一列所有的NaN
#这个就是清除缺失数据的方法!
total = pd.merge(s_areas,abb_pop,how='left')
total[total.isnull().any(axis=1)]
total.drop(2448,axis=0)
pop_density = total['population']/total['area (sq. mi)']
pop_density
#找出2010年的全民人口数据,df.query(查询语句)
total_2010 = total.query("year==2010.0 & ages=='total'")
total_2010.head()
total_2010.set_index("state",inplace=True)
density = total_2010['population']/total_2010['area (sq. mi)']
density.sort_values(ascending=False).head()
##要点总结
#1,统一使用loc[]索引
#2,善于使用.isnull().any()找到存在的NaN的列
#3,善于使用.unique()确定该列中哪些key是我们需要的
#4,一般使用外合并,目的只有一个:宁愿该列都是NaN,也不要丢弃其他列数据
















  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值