pandas实践——美国人口分析
1.导入文件,并查看数据样本
abbr = pd.read_csv("./state-abbrevs.csv")
areas =pd.read_csv("./state-areas.csv")
pop = pd.read_csv("./state-population.csv")
display(abbr.head(),areas.head(),pop.head())
abbr:

areas:

pop

2.合并数据,并对数据进行处理。
合并pop和abbr,两个dataframe,并删除合并后的abbreviation列
pop2 = pop.merge(abbr,how="outer",left_on="state/region",right_on="abbreviation") #设置how,合并后保留全部的数据
pop2.head() #展示前五条数据
pop2:

pop2.drop(labels="abbreviation",axis=1,inplace=True) #删除abbreviation的列
判断合并后有空数据
pop2.isnull().any(axis=0)
结果:

可以看到population列和state列中有空数据。
找到‘state’列中那些数据为空,并作为条件。
cond = pop2["state"].isnull()
根据条件判断出那个州有数据为空
cond = pop2["state"].isnull()
结果:array(['PR', 'USA'], dtype=object)
3.对空数据进行填充。
先添加填充条件
cond1 =pop2["state/region"]=="USA"
cond2 = pop2["state/region"]=="PR"
根据条件对为NaN的数数据进行补全
pop2["state"][cond2]="Puerto Rico"
pop2["state"][cond1]="United states"
正之前查询到的空数据的列还有population,对这些空数据进行删除。
cond3 = pop2["population"].isnull()
pop2[cond3].dropna(inplace=True)
pop2.notnull().all() #然后再对空数据进行查询
结果:
可以看到就没有空数据的列了
对areas表中数据添加到pop2中
pop3 = pop2.merge(areas,how="outer")
pop3.isnull().any() #判断融合后是否有空数据
结果:
#可以看到area列含有空数据
将有空数据的列作为条件
cond4 = pop3["area (sq. mi)"].isnull()
pop3[cond4]
结果:
#可以看到美国国土总面积数据为空
求出美国国土总面积。并将数据填充到pop3表中
a = areas["area (sq. mi)"].sum ()
pop3.fillna(a,inplace=True)
pop3.isnull().any()
结果:
#可以看到pop3中都没有空数据了
4.求出2010年美国各个州的人口密度
查询2010年各州的人口数据
pop4 = pop3.query("year==2010 and ages =='total'")
pop4.set_index(keys="state",inplace=True) #给查询出来的数据添加索引,并以州名作为索引。
pop4.tail()

pd.set_option("display.float_format",lambda x:"%0.1f"%(x))
pop_density = pop4["population"]/pop4["area (sq. mi)"]
pop_density1 = DataFrame(pop_density,columns=["pop_density(pop/area)"])
pop_density1.tail()
pop5 = pop4.merge(pop_density1,on="state")
pop5.head()

# 排序找到人口密度最高的五个州
pop6 = pop5.sort_values(by="pop_density(pop/area)",ascending=False)
pop6.head()

pandas实践——美国人口分析的更多相关文章
- pandas实例美国人口分析
- Python 的 pandas 实践
Python 的 pandas 实践: # !/usr/bin/env python # encoding: utf-8 __author__ = 'Administrator' import pan ...
- pandas - 案例(美国各州人口普查)
需求: 导入文件,查看原始数据 将人口数据和各州简称数据进行合并 将合并的数据中重复的abbreviation列进行删除 查看存在缺失数据的列 找到有哪些state/region使得state的值为N ...
- pandas - 案例(美国2012年总统候选人政治献金数据分析)
# 提供数据 months = {'JAN' : 1, 'FEB' : 2, 'MAR' : 3, 'APR' : 4, 'MAY' : 5, 'JUN' : 6, 'JUL' : 7, 'AUG' ...
- Python之numpy,pandas实践
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言. Jupyter Notebook 的本质是一个 Web 应用程序,便 ...
- pandas之美国2012年总统候选人政治献金数据分析
- 数据分析实际案例之:pandas在餐厅评分数据中的使用
目录 简介 餐厅评分数据简介 分析评分数据 简介 为了更好的熟练掌握pandas在实际数据分析中的应用,今天我们再介绍一下怎么使用pandas做美国餐厅评分数据的分析. 餐厅评分数据简介 数据的来源是 ...
- python 全栈之路
目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. Python - 模块 4. Python - 面对对象 5. Python - 文 ...
- 数据分析06 /pandas高级操作相关案例:人口案例分析、2012美国大选献金项目数据分析
数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 目录 数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 1. ...
随机推荐
- 进击JavaScript核心 --- (1)基本数据类型
ES5之前提供了 5种基本数据类型 和 1种引用数据类型 基本数据类型:Undefined, Null, String, Number, Boolean 引用数据类型:Object ES6开始引入了一 ...
- 03.Jquery Mobile中的按钮
一. 基础按钮 1.设置链接的data-role,使其变成按钮. <a href="index.html" data-role="button">L ...
- 微信小程序入门文档
一 基本介绍 微信专门为小程序开发了一个ide叫做微信开发者工具 最新一版的微信开发者工具,把微信公众号的调试开发工作也集成了进去,可以更换开发模式. https://mp.weixin.qq.com ...
- (转)Mysql数据库之Binlog日志使用总结CentOS 7.x设置自定义开机启动,添加自定义系统服务
Centos 系统服务脚本目录: /usr/lib/systemd/ 有系统(system)和用户(user)之分, 如需要开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即: li ...
- Selenium~自动化测试来了
这段时候研究了一下Selenium,它是一个自动化测试工具,在asp.net平台可以通过nuget去安装,同时支持多种开发语言,之前支持java,而现在也支持C#了,所以我们通过nuget就可以安装了 ...
- 看懂物联网fr
看懂物联网 2015-10-11 物联网世界 1.第三次IT浪潮 互联网时代的特征是信息驱动了生产力,无论众包.订单式生产这些理论:还是B2C.O2O各类业务模式:归根结底,是信息优化了生产关 ...
- 《javascript设计模式》笔记之第十章 和 第十一章:门面模式和适配器模式
第十章:门面模式 一:门面模式的作用 简化已有的api,使其更加容易使用 解决浏览器的兼容问题 二:门面模式的本质 门面模式的本质就是包装已有的api来简化操作 三:门面模式的两个简单例子 下面这 ...
- P4878 道路修建-美国
http://www.tyvj.cn/p/4878道路修建 我想我经大神点拨后终于明白了...回学校再写吧 时间限制:1s 内存限制:256MB [问题描述] A国是一个商业高度发达的国家.它包含了n ...
- rest_framework序列化组件
一.Django自带的序列化组件 ==>对象序列化成json格式的字符串 from django.core import serializers from django.core import ...
- 在开发第一个Android应用之前需要知道的5件事:
你能否详细讲述一下,在开发Android应用过程中每一阶段要用到的技能和编程语言? 建立一个Android应用程序可以归结为两个主要技能/语言:Java和Android系统.Java是Android的 ...