本次实验目的是对pandas库进行运用,使用了pandas的读写文件、级联、空值处理、查询语句、数据处理等功能

一、pandas模块导入

Pandas库是一个免费、开源的第三方Python库,是Python数据分析必不可少的工具之一,它为Python数据分析提供了高性能,且易于使用的数据结构,即Series和DataFrame。

使用pip install pandas进行安装,import pandas as pd语句进行模块导入。

二、人口数据下载

美国人口数据可在GitHub - jakevdp/data-USstates: Collection of CSV data on US states for Pandas merge demos进行下载,所需文件如下。

三、人口数据处理

1、级联以及级联后的数据处理

使用read_csv读取文件。

areas = pd.read_csv('state-areas.csv')
abbr = pd.read_csv('state-abbrevs.csv')
pop = pd.read_csv('state-population.csv')

将人口文件和州名缩写文件进行级联。按照州的缩写这一列,对pop和abbr进行合并,分别依据state/region列和abbreviation列进行一对多合并。为了保留所有信息,使用外合并,left_on和right_on指定合并列。但使用外合并,数据不会丢失,却会存在空值。

pop2 = pd.merge(pop, abbr, how='outer', left_on='state/region', right_on='abbreviation')

使用info查看空值。

print(pop2.info())

输出结果如下。

因为state/region列和abbreviation列重复,所以可删除一列,可以看出abbreviation列有空值,所以删除abbreviation列。inplace的意思是直接在pop2上进行数据更改,不会创建新数据。

pop2.drop(labels='abbreviation', axis=1, inplace=True)
pop2.to_excel('pop2.xlsx')

使用isnull().any(),只有某一列存在一个缺失数据,就会显示TRUE

print(pop2.isnull().any())

输出结果如下。

可以发现,人口列和州名列均有空值,人口列没有办法补全,州名可以,现在我们来补全州名。
首先查看州这一列哪些行为空值。

cond = pop2['state'].isnull()
print(cond)

输出结果如下。

可以发现只有‘USA’和‘PA’这两个州有空值。

写入表中结果如下。

2、空值处理

现在进行数据填充,根据数据是否缺失情况显示数据,如果缺失为True,那么显示。寻找’state/region‘列中等于PR的数据。

cond1 = pop2['state/region'] == 'PR'

进行赋值。

pop2['state'][cond1] = 'Puerto Rico'

同理对USA列数据进行填充。

填充后写入表中结果如下。

查看population的空值,删除population为空的行。

cond = pop2['population'].isnull()

pop2.dropna(inplace=True)

写入文件

pop2.to_excel('pop3.xlsx')

输出结果如下。

可以看出空的人口数据行被删除。

3、三个文件进行级联以及空值填充

将面积文件合并,使用左合并。

pop4 = pd.merge(pop2, areas, how='outer')

继续寻找空数据。

print(pop4.isnull().any())

输出结果如下。

发现area(sq. mi)这一列有缺失数据,为了找出是哪一行,需要找出哪个state没有数据。

cond = pop4['area (sq. mi)'].isnull()

pop4[cond]的意思是输出cond为true时的行,发现是usa没有数据。

print(pop4[cond])

输出结果如下。

因为usa的面积是各个州面积之和,所以可以计算各州面积和。

sum_area = areas['area (sq. mi)'].sum()

填充空数据,因为空数据均为USA的,所以使用fillna函数。并且写入文件。

pop4.fillna(sum_area, inplace=True)
pop4.to_excel('pop4.xlsx')

pop4.xlsx文件如下。

4、人口数据处理

选择对2010年的全国人口数据进行处理。首先使用查询语句找出各个州的2010年人口数据。

pop_2010 = pop4.query("year == 2010 and ages == 'total'")

对查询结果进行处理,以state/region列作为新的行索引,此处使用set_index函数

pop_2010.set_index('state/region', inplace=True)

写入‘pop2010.xlsx’文件。

pop_2010.to_excel('pop2010.xlsx')

输出结果如下。

计算人口密度,注意此时接收的pop_density类型是Series

pop_density = pop_2010['population']/pop_2010['area (sq. mi)']

此时的pop_density是series,要将其转换为DateFrame才能合并。

pop_density = DataFrame(pop_density, columns=['pop_density'])

result = pd.merge(pop_2010, pop_density, left_index=True, right_index=True)

写入文件。

result.to_excel('result.xlsx')

输出结果如下。

最后按照人口密度进行排序。

result.sort_values(by='pop_density', inplace=True)
result.to_excel('result.xlsx'

使用Pandas处理美国人口数据相关推荐

  1. 【Python】pandas获取全省人口数据并作可视化分析

    前言 目录 前言 代码实现 可视化分析 今天我们看看自己所在的省份的人口人数,使用pandas并作可视化分析. 环境使用 python 3.9 pycharm 模块使用 pandas Pandas 是 ...

  2. Google Earth Engine(GEE)——在线统计美国人口和住房数据(以ee.Reducer.sum().repeat().group列表形式呈现)

    你可以在一个每个区域获得的统计数据Image或者 FeatureCollection通过使用reducer.group()到组reduce的输出由指定的输入值.例如,为了计算每个州的总人口和住房单元数 ...

  3. 世界人口钟实时数据_中美面积人口数据对比,2020年8月,值得了解的细节

    一.面积 中国陆地面积约960万平方公里,内海和边海的水域面积约为470多万平方公里,大致是2:1的关系. 美国,百度百科的面积是937万平方公里,传统教科书上比我国面积略小,排名世界第四.按照美国自 ...

  4. 9.Pandas练习:美国个州的统计数据

    Pandas练习:美国各州的统计数据 前面讲解了那么多Pandas中的内容,下面将结合真实的数据集来进行Pandas数据分析练习, 我们这个练习只进行最简单的分析,目的是找出人口密度最高和最稀疏的州 ...

  5. pandas 实例操作:美国人口案例分析

    pandas 案例分析:美国人口案例分析 ''' 需求:导入文件,查看原始数据将人口数据和各州简称数据进行合并将合并的数据中重复的abbreviation列进行删除查看存在缺失数据的列找到有哪些sta ...

  6. 【数据可视化】案例一:美国人口与种族变迁史

    实验介绍 作为一个移民国家,美国的种族和人口问题全方位地影响着美国各州的政治.经济.文化和司法,本实验通过对美国人口普查局与美国国家卫生统计中心自 1990 以来调查获得的长达 29 年的美国人口和种 ...

  7. pandas数据分析美国各区人口普查案例

    需求: 导入文件,查看原始数据 将人口数据和各州简称数据进行合并 将合并的数据中重复的abbreviation列进行删除 查看存在缺失数据的列 找到有哪些state/region使得state的值为N ...

  8. 基于pyecharts的Kline以及pandas对美国标准普尔500指数历史数据(SP500)进行数据可视化分析

    基于pyecharts的Kline以及pandas对美国标准普尔500指数历史数据(SP500)进行数据可视化分析 k线图简述 对股票数据的描述,我们最常用的还是k线图,k线图包含四个数据,即开盘价. ...

  9. 美国人口普查数据预测收入sklearn算法汇总3之ROC: KNN,LogisticRegression,RandomForest,NaiveBayes,StochasticGradientDece

    接<美国人口普查数据预测收入sklearn算法汇总1: 了解数据以及数据预处理> <美国人口普查数据预测收入sklearn算法汇总2: 特征编码, 特征选择, 降维, 递归特征消除& ...

最新文章

  1. 作为一名程序员,数学到底对你有多重要?
  2. c语言的考试是操作电脑还是写试卷,C语言考试试卷都是基础的题目,由于本人没学过C语言,求各位帮忙, 爱问知识人...
  3. [linux] SIGPIPE信号处理
  4. 声音的播放——MCI的使用
  5. 解决python2.7 UnicodeDecodeError和UnicodeEncodeError问题
  6. java防止undo空间撑爆_秒杀系统设计补坑篇(seata回顾)
  7. 前端学习(2797):实现右侧数据的渲染
  8. 状态栏背景颜色(转载)
  9. input组件android,React-Native TextInput组件详解及实例代码
  10. 实现RPC就是这么简单
  11. css一行内容过多显示省略号
  12. MySQL 主从同步方式
  13. 思考的乐趣-Matrix67数学笔记
  14. 官网下载Windos10正版镜像并安装
  15. AABB与OOB包围盒子
  16. kali2021安装sougou输入法
  17. 《软件随想录-Joel on Software》书摘
  18. Window系统 cd命令
  19. 使用弗洛伊德算法(Floyd-Warshall)找到所有对最短路径长度
  20. java放3个按钮_java编写三个按钮

热门文章

  1. nextdate函数白盒测试问题 软件测试_NextDate函数测试用例 -
  2. 获取具体日期N个月前(后)的自然月时间戳
  3. 关于 VScode 中使用 python 相对路径找不到的问题(解决)
  4. 02 夯实根基,web网页基础
  5. 模型高性能优化 | 两步数据预处理让Alphafold 提速一倍
  6. 流媒体之老黄谈流媒体服务与视频网站研发
  7. 转炉炼钢计算机仿真实验报告,计算机仿真、实验报告.docx
  8. 【C】递归之整数转换字符串
  9. AWS全球年度技术大会--上海站、广州站
  10. 【Java并发编程】闭锁