当前位置:
首页 > temp > python入门教程 >
-
pandas数据分析案例:美国2012年总统候选人政治献金数据分析
方便大家操作,将月份和参选人以及所在政党进行定义:
months = {'JAN': 1, 'FEB': 2, 'MAR': 3, 'APR': 4, 'MAY': 5, 'JUN': 6, 'JUL': 7, 'AUG': 8, 'SEP': 9, 'OCT': 10, 'NOV': 11, 'DEC': 12} of_interest = ['Obama, Barack', 'Romney, Mitt', 'Santorum, Rick','Paul, Ron', 'Gingrich, Newt'] parties = { 'Bachmann, Michelle': 'Republican', 'Romney, Mitt': 'Republican', 'Obama, Barack': 'Democrat', "Roemer, Charles E. 'Buddy' III": 'Reform', 'Pawlenty, Timothy': 'Republican', 'Johnson, Gary Earl': 'Libertarian', 'Paul, Ron': 'Republican', 'Santorum, Rick': 'Republican', 'Cain, Herman': 'Republican', 'Gingrich, Newt': 'Republican', 'McCotter, Thaddeus G': 'Republican', 'Huntsman, Jon': 'Republican', 'Perry, Rick': 'Republican' }
完成下列需求:
1.读取文件usa_election.txt 2.查看文件样式及基本信息 3.【知识点】使用map函数+字典,新建一列各个候选人所在党派party 4.使用np.unique()函数查看colums:party这一列中有哪些元素 5.使用value_counts()函数,统计party列中各个元素出现次数,value_counts()是Series中的,无参,返回一个带有每个元素出现次数的Series 6.【知识点】使用groupby()函数,查看各个党派收到的政治献金总数contb_receipt_amt 7.查看具体每天各个党派收到的政治献金总数contb_receipt_amt。使用groupby([多个分组参数]) 8.将表中日期格式转换为'yyyy-mm-dd'。日期格式,通过函数加map方式进行转换 9.查看老兵(捐献者职业)DISABLED VETERAN主要支持谁 :查看老兵们捐赠给谁的钱最多 10.找出各个候选人的捐赠者中,捐赠金额最大的人的职业以及捐赠额,通过query("查询条件来查找捐献人职业")
1.读取文件usa_election.txt
data = pd.read_csv('./data/usa_election.txt') data.head()
2.查看文件样式及基本信息
3.【知识点】使用map函数+字典,新建一列各个候选人所在党派party
data['party'] = data['cand_nm'].map(parties) data.head()
4.使用np.unique()函数查看colums:party这一列中有哪些元素
data['party'].unique() --返回Array([])数组
5.使用value_counts()函数,统计party列中各个元素出现次数,value_counts()是Series中的,无参,返回一个带有每个元素出现次数的Series
data['party'].value_counts() --返回元素和次数
6.【知识点】使用groupby()函数,查看各个党派收到的政治献金总数contb_receipt_amt
data.groupby(by='party',axis=0)['contb_receipt_amt'].sum()
7.查看具体每天各个党派收到的政治献金总数contb_receipt_amt。使用groupby([多个分组参数])
data.groupby(by=['contb_receipt_dt','party'],axis=0)['contb_receipt_amt'].sum()
8.将表中日期格式转换为'yyyy-mm-dd'。日期格式,通过函数加map方式进行转换
def transform_date(d): day,month,year = d.split('-') month = months[month] return '20'+year+'-'+str(month)+'-'+day # date = data['contb_receipt_dt'].apply(transform_date) date = data['contb_receipt_dt'].map(transform_date) data['contb_receipt_dt'] = date data.head()
9.查看老兵(捐献者职业)DISABLED VETERAN主要支持谁 :查看老兵们捐赠给谁的钱最多
# 1.先从原数据中将老兵这个职业对应的行数据取出 data['contbr_occupation'] == 'DISABLED VETERAN' veteran_df = data.loc[data['contbr_occupation'] == 'DISABLED VETERAN'] veteran_df.head() # 2.对竟选者进行分组 veteran_df.groupby(by='cand_nm',axis=0)['contb_receipt_amt'].sum()
10.找出各个候选人的捐赠者中,捐赠金额最大的人的职业以及捐赠额,通过query("查询条件来查找捐献人职业")
# 1.先找出捐赠金额最大的人 data['contb_receipt_amt'].max() # 2.然后直接使用条件查询出结果 data.query('contb_receipt_amt == %f'%data['contb_receipt_amt'].max())
出 处:https://www.cnblogs.com/aitree/p/14326429.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数