1,导入包

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

 

2,方便大家操作,将月份和参选人以及所在政党进行定义

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'           }

 

3,读取文件

table = pd.read_csv('data/usa_election.txt')
table.head()

  

 4,使用map函数+字典,新建一列各个候选人所在党派party

table['party'] = table['cand_nm'].map(parties)
table.head()

  

5,party这一列中有哪些元素

table['party'].unique()

  array(['Republican', 'Democrat', 'Reform', 'Libertarian'], dtype=object)

 6,使用value_counts()函数,统计party列中各个元素出现次数,value_counts()是Series中的,无参,返回一个带有每个元素出现次数的Series

table['party'].value_counts()

 

Democrat       292400
Republican     237575
Reform           5364
Libertarian       702
Name: party, dtype: int64

 

7,使用groupby()函数,查看各个党派收到的政治献金总数contb_receipt_amt

table.groupby(by='party')['contb_receipt_amt'].sum()

  

party
Democrat       8.105758e+07
Libertarian    4.132769e+05
Reform         3.390338e+05
Republican     1.192255e+08
Name: contb_receipt_amt, dtype: float64

 

8,查看具体每天各个党派收到的政治献金总数contb_receipt_amt 。使用groupby([多个分组参数])

table.groupby(by=['party','contb_receipt_dt'])['contb_receipt_amt'].sum()

  

9,将表中日期格式转换为'yyyy-mm-dd'。日期格式,通过函数加map方式进行转换

def trasform_date(d):day,month,year = d.split('-')month = months[month]return "20"+year+'-'+str(month)+'-'+daytable['contb_receipt_dt'] = table['contb_receipt_dt'].apply(trasform_date)table.head()

  

10,查看老兵(捐献者职业)DISABLED VETERAN主要支持谁  :查看老兵们捐赠给谁的钱最多

table['contbr_occupation'] == 'DISABLED VETERAN'
old_bing_df = table.loc[table['contbr_occupation'] == 'DISABLED VETERAN']
old_bing_df.groupby(by='cand_nm')['contb_receipt_amt'].sum()

cand_nm
Cain, Herman       300.00
Obama, Barack     4205.00
Paul, Ron         2425.49
Santorum, Rick     250.00
Name: contb_receipt_amt, dtype: float64 
table['contb_receipt_amt'].max()

1944042.43

11,找出候选人的捐赠者中,捐赠金额最大的人的职业以及捐献额  .通过query("查询条件来查找捐献人职业")

 table.query('contb_receipt_amt == 1944042.43')

  

转载于:https://www.cnblogs.com/feifeifeisir/p/10497672.html

6,美国2012年总统候选人政治献金数据分析相关推荐

  1. pandas - 案例(美国2012年总统候选人政治献金数据分析)

    # 提供数据months = {'JAN' : 1, 'FEB' : 2, 'MAR' : 3, 'APR' : 4, 'MAY' : 5, 'JUN' : 6,'JUL' : 7, 'AUG' : ...

  2. 美国2012政治献金数据分析(附有源数据和题目)

    读取文件usa_election.txt 查看文件样式及基本信息 指定数据截取,将如下字段的数据进行提取,其他数据舍去: cand_nm :候选人姓名 contbr_nm :捐赠人姓名 contbr_ ...

  3. 数据分析---2012美国大选献金项目数据分析

    需求: 1. 加载数据 df = pd.read_csv('./data/usa_election.txt') 2. 对新数据进行总览,查看是否存在缺失数据: 方法一:isnull.notnull.a ...

  4. 3 Python数据分析 美国各州人口分析案例 Pandas高级操作 美国大选献金案例 matplotlib

    Python数据分析 1 案例 美国各州人口分析 1.1 数据介绍 数据来源:https://github.com/jakevdp/data-USstates/ 1.1.1 州人口数量表 state- ...

  5. 项目3:美国大选献金目数据分析

    """ 需求: 1.读取数据 2.查看是否有缺失数据 3.用统计学指标快速描述数值型属性的概要 4.空值处理.可能因为忘记填写保密等原因,相关字段出现了空值,将其填充为N ...

  6. 文末送书|用Pandas分析了75w多条数据,揭秘美国选民的总统喜好!

    点击"一行数据",选择"置顶公众号" 文末送书,不可错过! 来源:天池大数据科研平台 原文:https://tianchi.aliyun.com/noteboo ...

  7. 用Pandas分析了75w多条数据,揭秘美国选民的总统喜好!

    来源:天池大数据科研平台 原文:https://tianchi.aliyun.com/notebook-ai/detail?&postId=137714 大家好,我是小z- 今天和大家分享的内 ...

  8. 用Pandas分析了75w多条数据,揭秘美国选民的总统喜好

    来源:天池大数据科研平台 原文:https://tianchi.aliyun.com/notebook-ai/detail?&postId=137714 1.实战前准备 1.1 前言 本文通过 ...

  9. 美国大选献金项目学习笔记

    目录 要求 代码: 要求 代码: import numpy as np import pandas as pddf = pd.read_csv('./data/usa_election.txt')# ...

  10. Chapter3美国大选金献项目数据分析

    8:46 加载数据 查看数据的基本信息/对新数据进行总览,查看是否存在缺失数据 快速描述数值型属性的概要 空值处理,将空值填充为NOT PROVIDE 异常值处理 新建一列为各个候选人所在的党派par ...

最新文章

  1. fork是linux函数吗,linux fork()函数
  2. 打不死的小强机器人来了,向心加速度堪比猎豹,能抵抗自身数百倍重量碾压...
  3. Asp.Net统一前后端提示信息方案
  4. AIProCon在线大会笔记之华为涂丹丹:华为云EI,行业智能化升级新引擎
  5. ORACLE TDE 透明数据加密技术
  6. H264编码 封装成MP4格式 视频流 RTP封包
  7. 使用yum命令安装mysql_Linux Centos 下使用yum 命令安装mysql实现步骤
  8. 常用的寄存器( bss段的作用)
  9. 独家 | Face++印奇:AI是场持久战,但第一阶段明年结束
  10. C语言UDP socket编程
  11. matlab 编写雷达波形,雷达信号处理+Matlab程序
  12. 9大最佳工程施工项目管理系统
  13. 淘宝数据魔方技术架构解析
  14. c语言switch优点,关于C语言switch
  15. 入行数据科学,推荐几本好书看看
  16. 王小云计算机,王小云,密码专家——神一样的存在( 开讲了 49′55″)
  17. 二次拟合r方_r的平方为什么是R方?
  18. 美式口语发音技巧:《发音总结》
  19. 什么是gpo,gpt,gpc(活动目录组策略)
  20. Deep Face Super-Resolution with Iterative Collaboration论文阅读笔记

热门文章

  1. 「99诱拐」 读后感
  2. 计算机硬盘hs申报要素,实例手把手教你填报HS编码和申报要素
  3. 柯桥增值税留抵如何退税?
  4. 第六章:纯策略纳什均衡
  5. Java学习路线-1:编程入门
  6. android四大组件
  7. 深圳市已获取支付牌照公司
  8. NSIS “Win32 Error,Code:740 ,请求的操作需要提升”错误解决方法
  9. day3.python基础中下
  10. 【ros学习】11.ros建模时遇到No transform from [back_caster_link] to [base_link]不显示轮子