数据分析,人口分析练习

导包
import numpy as np
import pandas as pd
from pandas import Series,DataFrame

读取文件

#州名称表
abb = pd.read_csv(’./state-abbrevs.csv’)

#各州面积表
area = pd.read_csv(’./state-areas.csv’)

#各州人口表
pop = pd.read_csv(’./state-population.csv’)

shape查看文件维度

abb.shape,area.shape,pop.shape
》》》
(51, 2),(52, 2),(2544, 4)

pop的’state/region’列和abb表的’abbreviation’内容相同,合并
pop2 = pop.merge(abb,left_on = ‘state/region’,right_on=‘abbreviation’,how = ‘outer’)

pop2

删掉重复的列
pop3 = pop2.drop(columns=‘abbreviation’)
pop3

检查新组建的表格pop3是否有空值
pop3.isnull().any()

检查空值情况
cond = pop3[‘state’].isnull()
pop3[cond]

根据state/region情况,给空值赋值
cond = pop3[‘state/region’]==‘PR’
pop3[‘state’][cond]=‘Puerto Rico’

cond = pop3[‘state/region’]==‘USA’
pop3[‘state’][cond]=‘United States’

再次检查pop3空值情况
pop3.isnull().any()

,还有空值,对分析无影响的话,删除空值
pop3.dropna(inplace=True)

再次检查空值
pop3.isnull().any()

将面积表同pop3表合并
pop4 = pop3.merge(area,how=‘outer’)
pop4.shape
pop4.head()

检查是否有空值
pop4.isnull().any()

获取空值下标
cond = pop4[‘area (sq. mi)’].isnull()
pop4[cond]

给空值赋值
pop4[‘area (sq. mi)’][cond]=3790399

再次检查空值情况
pop4.isnull().any()

使用query函数获取多行数据
pop5 = pop4.query(‘year == 2010 and ages == “total”’)
pop5

设置行索引
pop5.set_index(‘state’,inplace=True)
pop5

计算各州人口密度

density = pop5[‘population’]/pop5[‘area (sq. mi)’]
density

根据人口密度值进行排序
density.sort_values()

猜你喜欢

转载自blog.csdn.net/zhige1112/article/details/88763462