美国2012年总统候选人政治献金数据分析
2017-12-21 11:22
399 查看
1.导入模块
import numpy as np import pandas as pd from pandas import Series,DataFrame
2.读取文件
#本地文件 election_data = pd.read_csv('usa_election.txt',low_memory=False) election_data.head()
3.新建一列各个候选人所在的党派party——map(dir)
# 候选人和所在政党的映射字典 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' } #新建一列‘party',根据’cand_nm'列进行字典映射 election_data['party'] = election_data['cand_nm'].map(parties)
4.查看party列中有哪些元素——unique()
election_data['party'].unique()
5.统计party列中各个元素出现次数——value_counts()
election_data['party'].value_counts()
6.查看各个党派收到的政治献金总数——groupby()
election_data.groupby('party')['contb_receipt_amt'].sum()
7.统计每天各个党派收到的政治献金总数——groupby([多个分组参数])
election_data.groupby(['party','contb_receipt_dt'])['contb_receipt_amt'].sum()
8.将日期转换为Pandas的日期格式——map(func)
#定义映射函数 def transform_date(date): day,month,year = date.split('-') mon = months[month] return str(mon)+'-'+str(day)+'-'+str(year) #进行映射转换 election_data['contb_receipt_dt'] = election_data['contb_receipt_dt'].map(transform_date)
9.时间转换为时间数据类型并根据时间进行排序
转化为时间数据类型:pd.to_datetime()排序:sort_values()
根据index_list创建新的索引:take(index_list)
election_data['contb_receipt_dt'] = pd.to_datetime(election_data['contb_receipt_dt']) # 对contb_receipt_dt进行排序,拿到排序后的索引列表 take_list = election_data['contb_receipt_dt'].sort_values().index # 再使用新的索引列表重新排布election_data sort_election_data = election_data.take(take_list)
10.每天各政党所收政治献金数目——groupby([多个分组参数])
day_paty_amt = DataFrame(sort_election_data.groupby(['contb_receipt_dt','party'])['contb_receipt_amt'].sum())
11.将party从行级索引变成列索引——unstack()
stack函数会将数据从”表格结构“变成”花括号结构“,即将其行索引变成列索引,反之,unstack函数将数据从”花括号结构“变成”表格结构“,即要将其中一层的列索引变成行索引。
result = day_paty_amt.unstack(level=1) result = result.fillna(value=0)
12.把索引变成列——Series.reset_index(col)
set_indexDataFrame可以通过set_index方法,可以设置单索引和复合索引。
DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
append添加新索引,drop为False,inplace为True时,索引将会还原为列
reset_index
reset_index可以还原索引,重新变为默认的整型索引
DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill=”)
level控制了具体要还原的那个等级的索引
drop为False则索引列会被还原为普通列,否则会丢失
result.reset_index('contb_receipt_dt')
13.找出各个候选人的捐赠者中,捐赠金额最大的人
election_data.groupby('cand_nm')['contb_receipt_amt'].max()
14.查询各候选人中捐赠金额最大的人的职业
election_data.query("contb_receipt_amt == value")
相关文章推荐
- 分析2012年美国选举数据---映射map/透视表pivot_table/聚合groupby/apply
- 诺基亚收购美国移动数据分析公司Motally
- 美国计算机科学与工程专业本科和硕士研究生课程设置特点分析——基于22所美国著名大学统计数据的分析
- 美国进入“非结构化”数据分析新时代
- 数据挖掘打破美国总统竞选的铁律
- python数据分析美国大选项目实战(三)
- 美国前总统候选人Ron Paul推广基于比特币的退休投资工具
- Pandas实战——美国大选数据分析
- 如何在美国公司写project plan 邮件--以hadoop安装和Mahout数据分析为例子
- 俄罗斯如何大数据影响美国政治!
- 机锋网2012年Q2运营数据分析:用户与开发者对应用的需求存在巨大差异
- 数据发挥分析美国投资者看淡中国IPO企业
- 美国总统候选人麦凯恩取笑女性,称其享受被猩猩强奸
- epiinfo是美国CDC开发维护的流行病学数据录入和分析软件,在DOS时代占主流,随着Windows的普及用的人越来越少了,epiinfo重新开发Windows版本后,体积庞大且不好用。在数据录入方面已被EpiData取代,不过epiinfo的分析模块,比如地理信息系统某些情况下还是挺有用的。
- epiinfo是美国CDC开发维护的流行病学数据录入和分析软件,在DOS时代占主流,随着Windows的普及用的人越来越少了,epiinfo重新开发Windows版本后,体积庞大且不好用。在数据录入方面已被EpiData取代,不过epiinfo的分析模块,比如地理信息系统某些情况下还是挺有用的。
- 美国前总统候选人:美国政府不应干涉比特币
- 黑客攻破法国总统候选人电脑 盗走敏感数据
- 美国各州人口数据分析
- 基于SPSS的美国老年夏季运动会运动员数据分析
- 背景:MIT媒体实验室打造社交网络研究实验室,已获Twitter1000万美元投资 Q&A:Twitter如何解读2016美国总统大选 “Electome”项目通过独有的细节视角图表分析这个全国性大讨