需求:
导入文件,查看原始数据
将人口数据和各州简称数据进行合并
将合并的数据中重复的abbreviation列进行删除
查看存在缺失数据的列
找到有哪些state/region使得state的值为NaN,进行去重操作
为找到的这些state/region的state项补上正确的值,从而去除掉state这一列的所有NaN
合并各州面积数据areas
我们会发现area(sq.mi)这一列有缺失数据,找出是哪些行
去除含有缺失数据的行
找出2010年的全民人口数据
计算各州的人口密度
排序,并找出人口密度最高的州
import numpy as npimport pandas as pdfrom pandas import DataFrame
abb = pd.read_csv('./anaconda3/课件/data/state-abbrevs.csv')area = pd.read_csv('./anaconda3/课件/data/state-areas.csv')pop = pd.read_csv('./anaconda3/课件/data/state-population.csv')
abb.head()

area.head()

pop.head()

# 1.将人口数据和各州简称数据进行合并df = pd.merge(abb,pop,left_on='abbreviation',right_on='state/region',how='outer')df

# 2.将合并的数据中重复的abbreviation列进行删除df.drop(labels='abbreviation',axis=1,inplace=True)df

# 3.查看存在缺失数据的列df.isnull().any(axis=0)# 获取state 和 population 存在缺失数据

# 4.找到有哪些state/region使得state的值为NaN,进行去重操作df.loc[df.loc[df['state'].isnull()].index]['state/region'].unique()

# 5.为找到的这些state/region的state项补上正确的值,从而去除掉state这一列的所有NaN# 分两步补充,先补PR,在补充USAindexs = df.loc[df['state/region']=='PR'].indexdf.loc[indexs,'state']='PUERTO RICO'
# 在补充USAindexs = df.loc[df['state/region']=='USA'].indexdf.loc[indexs,'state']='United States'

# 6.合并各州面积数据areasdd = pd.merge(df,area,on = 'state',how='outer')dd

# 7.我们会发现area(sq.mi)这一列有缺失数据,找出是哪些行dd[dd['area (sq. mi)'].isnull()].index

# 8.去除含有缺失数据的行dd.drop(labels=dd[dd['area (sq. mi)'].isnull()].index,axis=0,inplace=True)

# 9.找出2010年的全民人口数据dd.query('ages=="total" & year==2010')

# 10.计算各州的人口密度dd['midu']=dd['population']/dd['area (sq. mi)']

# 11.排序,并找出人口密度最高的州dd.sort_values('midu',ascending=False,na_position='last')

dd.sort_values('midu',ascending=False,na_position='last').iloc[1]['state']

后台回复「人口分析」可获取本文的数据集及源码。
文章转载自Skill数据分析,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




