python高级--美国人口分析(Numpy,Pandas)

该博客通过Python的数据分析库Numpy和Pandas,详细介绍了如何处理和分析美国人口数据。首先,导入并合并了popu和abbrevs两个DataFrame,接着处理了合并后数据的空值,特别是补充了缺失的州全称。然后,将人口数据与面积数据进行外合并,并删除了不需要的列。最后,博主查找了2010年各州人口数据,将其按state列设置为行索引,并计算了人口密度,找出了人口密度最高的五个州。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面所用到的数据(可下载)
可点击下载

所用数据文件
state-abbrevs.csv
state-areas.csv
state-population.csv

要求 1、文件导入并查看数据样本

操作 1、导入csv文件

>>> df_abbr = pd.read_csv('./data/state-abbrevs.csv')
>>> df_abbr   #美国各州的名称和缩写

                   state abbreviation
0                Alabama           AL
1                 Alaska           AK
2                Arizona           AZ
3               Arkansas           AR
4             California           CA
5               Colorado           CO
6            Connecticut           CT
7               Delaware           DE
。。。。。
>>> df_areas = pd.read_csv('./data/state-areas.csv')
>>> df_areas   #美国各州面积
                   state  area (sq. mi)
0                Alabama          52423
1                 Alaska         656425
2                Arizona         114006
3               Arkansas          53182
4             California         163707
5               Colorado         104100
6            Connecticut           5544
7               Delaware           1954
。。。。

美国各周及国家各年人口总数

#这里数据较多,我们取前后各5个样本
>>> df_popu = pd.read_csv('./data/state-population.csv')

>>> df_popu.tail() #后5个样本
     state/region     ages  year   population
2539          USA    total  2010  309326295.0
2540          USA  under18  2011   73902222.0
2541          USA    total  2011  311582564.0
2542          USA  under18  2012   73708179.0
2543          USA    total  2012  313873685.0

>>> df_popu.head()  #前5个样本
  state/region     ages  year  population
0           AL  under18  2012   1117489.0
1           AL    total  2012   4817528.0
2           AL  under18  2010   1130966.0
3           AL    total  2010   4785570.0
4           AL  under18  2011   1125763.0

要求2、合并popu与abbrevs两个DataFrame,分别依据state/region列和abbreviation列来合并。

操作 2、根据state/region列和abbreviation列来合并两表

为了保留所有信息,使用外合并 ‘outer’

>>> df1 = pd.merge(df_popu,df_abbr,how='outer',left_on='state/region',right_on='abbreviation')  #根据州名缩写合并人口表和各州名称表
'''
left_on:左边根据哪一列合并
right_on:右边根据哪一列合并
'''
#合并后数据比较多 [2544 rows x 6 columns]
#所以拿出来前五,后五个样本来展示
>>> df1.head()
  state/region     ages  year  population    state abbreviation
0           AL  under18  2012   1117489.0  Alabama           AL
1           AL    total  2012   4817528.0  Alabama           AL
2           AL  under18  2010   1130966.0  Alabama           AL
3           AL    total  2010   4785570.0  Alabama           AL
4           AL  under18  2011   1125763.0  Alabama           AL

>>> df1.tail()
     state/region     ages  year   population state abbreviation
2539          USA    total  2010  309326295.0   NaN          NaN
2540          USA  under18  2011   73902222.0   NaN          NaN
2541          USA    total  2011  311582564.0   NaN          NaN
2542<
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值