2012 年美国总统候选人政治献金 数据分析(numpy+pandas)
提取码:8828 (本文用到的文档数据)
#导入工具包 import numpy as np import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplot as plt %matplotlib inline 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' } #导入政治献金的 啊、三个表 import random- contb1=pd.read_csv('contb_01.csv')
contb2=pd.read_csv('contb_02.csv')
contb3=pd.read_csv('contb_03.csv') # 展示第一张表的 前5个数据 contb1.head(3)
# 展示 第一张表的关键信息 contb1.info()
#把三张表拼接在一起 contb = pd.concat((contb1,contb2,contb3),axis=0)contb.head(3) contb.info()
# 主表中各个字段的定义 cand_nm 候选人的姓名 contbr_nm 选举人姓名 contbr_st 选举人所在的州 contbr_employer 选举人的职位 contbr_occupation 选举人的行业 contb_receipt_amt 政治献金的数目 contb_receipt_dt 捐赠的时间 # 候选人数据,unique 去除重复的数据 contb['cand_nm'].unique()
# 采用 map 映射,将候选人的党派作为新的一列添加到数据中 contb['party'] = contb['cand_nm'].map(parties) contb.head()
# 找到关于奥巴马的信息 aobama=contb.loc[contb['cand_nm']=='Obama, Barack'] # 给奥巴马的所有的政治献金 value=aobama.groupby(['cand_nm'])['contb_receipt_amt'].sum() value
# 查出有多少党派 contb['party'].unique()
#查出各个党派被捐助的次数 # 第一种方法 count=contb.groupby('party').count() # 按照降序进行排列 count.sort_values(by="cand_nm",ascending=False).reset_index()
# 各个党派被捐助的次数 contb['party'].value_counts()
# 绘制各个党派捐助的次数的 柱形图 contb['party'].value_counts().plot(kind="bar")
# 各个党派政治献金的总数 contb.groupby('party')["contb_receipt_amt"].sum().plot(kind="line")
contb.groupby('party')['contb_receipt_amt'].mean().plot(kind="line")
contb.columns
# 先不考虑时间类型 # 多分组 按照党派 按照时间进行 显示数据 #unstack 参数level = -1 将最后一列转化为 行 temp=contb.groupby(['contb_receipt_dt','party'])['contb_receipt_amt'].sum().unstack(level=-1,fill_value=0) temp.sort_index()
temp.info()
#获取当前的时间 now=pd.datetime.now() now #时间格式 # 2021-01-05 #时间属于数值类型 往前推一天,时间还可以进行排序 pd.to_datetime(np.array(["2021-09-8","8-MAY-21"]))
# 输入外国时间的格式转化为中文的时间格式 def map_datetime(x):day,month,year = x.split("-")# 根据月份的字典得到 月份具体指m = months[month]return "20{}-{}-{}".format(year,m,day) map_datetime("8-MAY-21")
party_dt = contb.groupby(['contb_receipt_dt','party'])['contb_receipt_amt'].sum().unstack(level=-1,fill_value=0) party_dt.sort_index(inplace=True) party_dt.plot(kind="line")
#每天政治献金的累计数 ,线性图 party_dt.cumsum().plot(kind="line")#那几个月是竞选的高峰期 #对月份进行分组,月份找出来,使用map的方式In [91]:
#如果是时间类型,不需要那么解决,时间类型有它专门的分组处理方案 # 重采样 用于时间分组,前提是类型必须是 以时间类型作为发型索引 contb.info()
temp = contb.set_index('contb_receipt_dt') temp.resample("Y")["contb_receipt_amt"].sum().plot(kind="bar")- Out[175]:
# 找出每个月的政治献金的总数 temp.resample("M")["contb_receipt_amt"].sum().plot(kind="bar")
# 求出每个党派 每隔月政治献金的总数,并绘制图形 # 把时间设置成索引 contb=contb.set_index('contb_receipt_dt') contb contb.groupby(['contb_receipt_dt','party'])['contb_receipt_amt'].sum().unstack(level=-1,fill_value=0).resample("M").sum().plot(kind="bar")
# 如果是2 分组的逻辑,可以直接使用透视表解决 pd.pivot_table(contb,index="contb_receipt_dt",columns="party",values="contb_receipt_amt",aggfunc=sum,fill_value=0).resample("M").sum().plot(kind="bar")
# 找出最有竞争力的两个人 列表 good_man_names = contb.groupby('cand_nm')['contb_receipt_amt'].sum().sort_values(ascending=False)[:2].index good_man_names
# 最有竞争力的 两个人的条件 condition = (contb['cand_nm']==good_man_names[0])|(contb['cand_nm']==good_man_names[1])# 根据条件 找出最有竞争力的两个人 good_man = contb.loc[condition ] #得到最有竞争力的两个人 gooodTwo=good_man['cand_nm'].unique() #得到的是 numpy的数组 type(gooodTwo)
VETERAN =contb.loc[contb['contbr_occupation']=='DISABLED VETERAN'] VETERAN#从数量看 老兵支持谁 VETERAN['cand_nm'].value_counts()
#从政治献金的额度 看老兵都支持税 VETERAN.groupby('cand_nm')['contb_receipt_amt'].sum().sort_values(ascending=False)
2012 年美国总统候选人政治献金 数据分析(numpy+pandas)相关推荐
- pandas - 案例(美国2012年总统候选人政治献金数据分析)
# 提供数据months = {'JAN' : 1, 'FEB' : 2, 'MAR' : 3, 'APR' : 4, 'MAY' : 5, 'JUN' : 6,'JUL' : 7, 'AUG' : ...
- 美国2012政治献金数据分析(附有源数据和题目)
读取文件usa_election.txt 查看文件样式及基本信息 指定数据截取,将如下字段的数据进行提取,其他数据舍去: cand_nm :候选人姓名 contbr_nm :捐赠人姓名 contbr_ ...
- OSChina 周六乱弹 ——快来看美国总统候选人怎么被打脸
2019独角兽企业重金招聘Python工程师标准>>> 我就知道你们喜欢段子! 来首音乐表达下心情 今天有人发现了一个大新闻呢, @景愿 : @红薯 你资料里居然把自己定位为&quo ...
- 数据分析---2012美国大选献金项目数据分析
需求: 1. 加载数据 df = pd.read_csv('./data/usa_election.txt') 2. 对新数据进行总览,查看是否存在缺失数据: 方法一:isnull.notnull.a ...
- 3 Python数据分析 美国各州人口分析案例 Pandas高级操作 美国大选献金案例 matplotlib
Python数据分析 1 案例 美国各州人口分析 1.1 数据介绍 数据来源:https://github.com/jakevdp/data-USstates/ 1.1.1 州人口数量表 state- ...
- 项目3:美国大选献金目数据分析
""" 需求: 1.读取数据 2.查看是否有缺失数据 3.用统计学指标快速描述数值型属性的概要 4.空值处理.可能因为忘记填写保密等原因,相关字段出现了空值,将其填充为N ...
- 美国大选献金项目学习笔记
目录 要求 代码: 要求 代码: import numpy as np import pandas as pddf = pd.read_csv('./data/usa_election.txt')# ...
- Chapter3美国大选金献项目数据分析
8:46 加载数据 查看数据的基本信息/对新数据进行总览,查看是否存在缺失数据 快速描述数值型属性的概要 空值处理,将空值填充为NOT PROVIDE 异常值处理 新建一列为各个候选人所在的党派par ...
- 数据分析项目3-美国大选献金分析
需求 加载数据 查看数据的基本信息 指定数据截取,将如下字段的数据进行提取,其他数据舍弃 cand_nm: 候选人姓名 contbr_nm:捐赠人所在州 ...
- 支持区块链技术的前星巴克CEO Howard Schultz计划参选美国总统
点击上方 "蓝色字" 可关注我们! 暴走时评: 亿万富翁霍华德·舒尔茨(Howard Schultz)是星巴克前首席执行官,同时也是一名区块链支持者.比特币抨击者,由于厌恶美国政治 ...
最新文章
- 分享Kali Linux 2017年第12周镜像文件
- apply通过实例理解
- 一、cocos2dx概念简介
- 安装ssr_12月23日先锋首测启动,累计登录3天必得SSR!
- Git之如何解决sourceTree已经pull全部下来但是本地没有更新的问题
- DBCC SHRINKFILE收缩日志/收缩数据库/收缩文件
- webpack打包原理
- 量子计算机的系统论思考,量子计算机发展带来的思考..doc
- matlab 神经网络工具箱的实用
- Codeforces Round #753 (Div. 3)E. Robot on the Board 1
- tsql 和 clr 的性能实测比对
- JavaScript 封装对象与强制类型转换
- 【Java】我的世界Java版外挂制作 [0] - 配置环境
- python 学生成绩统计
- 关于DNS污染问题的通用解决方案
- 单体架构与微服务架构区别
- Android Path之Direction.CW、Direction.CCW
- Python绝技第一章 入门 python3实现密码破解
- QT Quick项目简介
- ZOJ4062 Plants vs. Zombies 二分
热门文章
- Axure实战案例——页面设计
- 计算机网络--物理层(全)
- phyton做九九乘法表
- Oracle9i的1467错误
- “长大真的很没意思,连快乐都裹着一层苦”
- 科技爱好者周刊(第 194 期):悲观者正确,乐观者成功
- 链塔年会圆桌论坛实录
- pytorch中的pad_sequence、pack_padded_sequence和pad_packed_sequence函数
- 【板栗糖GIS】wps——如何解决WPS 任务栏图片白块
- 【答学员问】虚拟机不能正常启动,提示找不到VMX二进制文件