2012 美国总统竞选赞助情况分析(pandas实战)

数据:https://github.com/GibZhang/datasets/blob/master/P00000001-ALL.csv.zip

———参考《利用python进行数据分析》案例

引入相关库:

# coding=utf-8

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

1.数据载入与总览

df= pd.read_csv('ALL.csv')   //ALL.csv是竞选资助详情

在ipython交互环境输入:df.columns

Index(['cmte_id', 'cand_id', 'cand_nm', 'contbr_nm', 'contbr_city',

      'contbr_st', 'contbr_zip', 'contbr_employer', 'contbr_occupation',

      'contb_receipt_amt', 'contb_receipt_dt', 'receipt_desc', 'memo_cd',

      'memo_text', 'form_tp', 'file_num'],

      dtype='object')

数据基本信息

其中:cand_id:竞选者编号、cand_nm:竞选者姓名、contbr_nm:捐助者姓名、contbr_city:捐助者所在城市、contbr_st:捐助者所在州、contbr_zip:捐助者邮政编码、contbr_employer:捐助者公司、contbr_occupation:捐助者职业、contb_receipt_amt:捐助金额、contb_receipt_dt:捐助时间、receipt_desc:收据描述、memo_cd:无、memo_text:无、form_tp:无

2.了解数据(缺失值处理及信息填充)

1.党派信息填充

首先我们看一下竞选者列表:unique_cand = df['cand_nm'].unique()

array(['Bachmann, Michelle', 'Romney, Mitt', 'Obama, Barack',

      "Roemer, Charles E. 'Buddy' III", 'Pawlenty, Timothy',

      'Johnson, Gary Earl', 'Paul, Ron', 'Santorum, Rick',

      'Cain, Herman', 'Gingrich, Newt', 'McCotter, Thaddeus G',

      'Huntsman, Jon', 'Perry, Rick'], dtype=object)

由于数据中没有竞选者的党派信息,而该信息在竞选过程中又有一定的意义,因此我们将对应的党派信息用字典保存并加入读取的dataframe中。

parties= {'Bachmann, Michelle':'Republican',

'Cain, Herman':'Republican',

'Gingrich, Newt':'Republican',

'Huntsman, Jon':'Republican',

'Johnson, Gary Earl':'Republican',

'McCotter, Thaddeus G':'Republican',

'Obama, Barack':'Democrat',

'Paul, Ron':'Republican',

'Pawlenty, Timothy':'Republican',

'Perry, Rick':'Republican',

"Roemer, Charles E. 'Buddy' III":'Republican',

'Romney, Mitt':'Republican',

'Santorum, Rick':'Republican'}

利用pandas的map命令将党派数据加入数据表中:df['party']=df['cand_nm'].map(parties)

再来查看df的基本信息:df.columns

Index(['cmte_id', 'cand_id', 'cand_nm', 'contbr_nm', 'contbr_city',

      'contbr_st', 'contbr_zip', 'contbr_employer', 'contbr_occupation',

      'contb_receipt_amt', 'contb_receipt_dt', 'receipt_desc', 'memo_cd',

      'memo_text', 'form_tp', 'file_num', 'party'],

      dtype='object'),党派信息已成功插入。

2.由于df中某些参数并没有特别有价值的信息(cmte_id,file_num,form_tp,contbr_zip等),还有些信息存在冗余(cand_id与cand_nm都表示竞选者,cand_id冗余),因此我们将这些信息移除。

>>> dt =df.drop(labels=['cmte_id', 'cand_id','contbr_zip','form_tp', 'file_num'],axis=1)

3.数据缺失值处理

我们注意到contbr_city、contbr_st、contbr_employer、contbr_occupation、receipt_desc、memo_cd、memo_text数据均存在缺失。由于这些数据并非数值数据,且这些数据所在列,并非异常数据,仅仅可能是由于登记不全,所以我们可以在这些缺失的数据设置默认值。

dt['contbr_employer'].fillna('NOT PROVIDED',inplace=True)

dt['contbr_occupation'].fillna('NOT PROVIDED',inplace=True)

dt['memo_text'].fillna('default',inplace=True)

dt['memo_cd'].fillna('default',inplace=True)

dt['receipt_desc'].fillna('default',inplace=True)

3.数据基本性质初窥(数据探索)

>>> dt['cand_nm'].value_counts()

竞选者捐助人数分布

可以看出捐助Obama竞选的人达到了593746人,远远超过排在第二、第三,甚至人数超过了其他所有人数之和。Obama看来真的当之无愧是人民心中的总统人选。

>>> dt['contbr_occupation'].value_counts()[:20]

不同职业捐助人数排序前20
不同职业捐助总金额排序前20
不同职业捐助金额总额(前10)
出资额统计量

从出资额表中,可以看到出资额最小值为-30800,这是由于有些退款事项。我们关注出资额大与0的部分数据。从数据可以看出,出资额方差很大,说明出资额非常分散,其中,中值为100,75%分位线位250,而平均值为298,可以看出大部分人,

>>> data= dt[dt['contb_receipt_amt']>0]

查看不同候选人获得资助情况:

>>> data.groupby('cand_nm')['contb_receipt_amt'].sum().sort_values(ascending=False)

候选人获得出资额度排序

从上面可以看到,Obama,Barack和Romney,Mitt获得资金额度最多,他们两个是大选热门。因此在下一部分,我们会针对这两个人的数据进行对比分析。

4.数据可视化

数据可视化是数据分析中的一项重要工作,它可以帮助我们快速清晰的了解数据的特征。现在我们对第3部分的单项数据特征以及接下来的不同数据之间的特征进行挖掘。


>>> byocc =pd.pivot_table(data,values=['contb_receipt_amt'],index=['contbr_occupation'],columns=['party'],aggfunc='sum')

>>>  byocc[byocc.sum(axis=1)>2000000]

不同职业对两个党派资助情况的对比
不同职业对两党派资助情况

从上图看出,代理人、律师、医生、教授等职业主要倾向于支持民主党,而公司CEO,企业主、投资人、Owner、自我创业者等职业主要倾向于资助共和党,这可能和这两个党派所支持的利益有关,可以关注候选人在这方面的政策倾向等。

下面我们分析给予Obama,Barack和Romney,Mitt资助额最大的前几个职业

def get_top_amounts(group, key, n=5):

    totals = group.groupby(key)['contb_receipt_amt'].sum()

    return totals.nlargest(n)

cand_nm_grouped= cand_nm_dt.groupby('cand_nm')

cand_amt= cand_nm_grouped.apply(get_top_amounts,'contbr_occupation',10)

对两位候选人出资职业前10位

可以看出,支持Obama的职业排名靠前的主要是医生、律师、咨询师、教授等社会精英,而支持Romney的职业则主要为企业CEO,企业主等。

对两位候选人资助最多的公司

Obama:微软、盛德国际律师事务所; Romney:瑞士瑞信银行、摩根斯坦利、高盛公司、巴克莱资本、H.I.G.资本。

出资额分布分析:

bins= np.array([0,1,100,1000,10000,100000,1000000])

labels = pd.cut(dt['contb_receipt_amt'],bins)

现在可根据候选人姓名对obama和Romney进行分组,已得到一个对比图。

对两位候选人不同出资额人数的分布

从上图可以看出,对于小额出资者人数而言,支持Obama的人数远远多于第二位候选人Romney。从这里也可以看出Obama真的是民心所向,深得广大人民的支持。

另外,从各州的投票情况看,在出资额最多的10个州,Obama都要领先于Romney,特别是在PA、MD、MA、IL、CA这些州,这种优势更加明显。

出资额最多的10各州,两位候选人的投资额对比

从投资人出资情况看,也可以发现,越是临近大选,出资人额度越大,竞争也更加白热化,充分说明了美国大选真的是极其烧钱的,要想获得大选的胜利,不仅要有人脉,而且要有资金支持。

两人获得投资额随时间变化
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容

  • # -*- coding: utf-8 -*- from __future__ import division f...
    小豆角lch阅读 1,287评论 0 0
  • 莫春者,春服既成,冠者五六人,童子六七人,浴乎沂,风乎舞雩,咏而归。 马上冬天了,期待明年的春天,带着妹子约两三朋...
    ryys_1122阅读 146评论 0 0
  • 事前验尸,听着挻吓人的吧,在《思考快与慢》里见到的名词。 心理学家已经证实了“90%的司机都相信自己的车技比平均水...
    糖影Sophia阅读 3,705评论 1 1
  • 九十年代,一晃已经成为过去。只还停留在哪个时代的记忆,那么清晰,一个毛线手工编织火的年代。 老家每个女孩...
    咫尺为邻阅读 365评论 0 0
  • 1993年10月8日,在新西兰北部一个只有两千人的小岛上,大陆“朦胧诗”诗人顾城,杀妻后自缢于一棵大树之下。其...
    李清澄阅读 536评论 2 3