2012美国大选政治献金项目数据分析(有史以来最全面)(未完待续)


2012年大选基本情况

1. 数据载入与总览

1.1 数据加载

#绘图工具
import matplotlib.pyplot as plt
%matplotlib inline
#数据处理工具
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
#数据路径自己指定,本案例数据路径就在当前文件夹下面子文件夹usa_elect中
contb1 = pd.read_csv('./usa_elect/contb_01.csv')
contb2 = pd.read_csv('./usa_elect/contb_02.csv')
contb3 = pd.read_csv('usa_elect/contb_03.csv')

1.2 数据集成

#axis = 0 表示在行方向进行集成
contb = pd.concat([contb1,contb2,contb3],axis = 0)

1.3 数据预览

#查看前5行数据
contb.head()

在这里插入图片描述
字段解释:
cand_nm :候选人姓名
contbr_nm : 捐赠人姓名
contbr_st :捐赠人所在州
contbr_employer : 捐赠人所在公司
contbr_occupation : 捐赠人职业
contb_receipt_amt :捐赠数额(美元)
contb_receipt_dt : 捐款的日期

#查看数据形状
contb.shape

输出:(1001733, 7)
说明数据共计1001733行数据,共7列属性

#该方法查看数据总览
#查看数据的信息,包括每个字段的名称、非空数量、字段的数据类型等
contb.info()

在这里插入图片描述
通过info我们可以知道contbr_employer和contbr_occupation与contbr_st存在空数据

#用统计学指标快速描述数值型属性的概要
contb.describe()

在这里插入图片描述

2. 数据预处理

2.1 空值处理

#属性contbr_employer存在空数据,有可能因为忘记填写或者保密等等原因
#使用fillna方法填充固定值:NOT PROVIDE
contb['contbr_employer'].fillna('NOT PROVIDE',inplace = True)
#对属性contbr_occupation职业进行数据填充
contb['contbr_occupation'].fillna('NOT PROVIDE',inplace = True)
#对属性contbr_st进行数据填充
contb['contbr_st'].fillna('NOT PROVIDE',inplace = True)

此时我们的数据contb已经不存在空数据了

2.2 数据变换

2.2.1 字典映射进行转换:党派分析

#通过搜索引擎等途径,获取到每个总统候选人的所属党派,建立字典parties,候选人名字作为键,所属党派作为对应的值
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'}

2.2.2 按照职业分组聚合对赞助总金额进行排序

2.2.3 利用函数进行数据转换:职业与雇主信息分析

2.3 数据删选

2.3.1 政治献金金额删选

2.3.2 两巨头(奥巴马与罗姆尼)删选

2.4 离散化和分享操作

3. 数据聚合与分组运算

3.1 透视表(pivot_table)分析党派和职业

3.2 分组级运算和转换

3.2.1 根据职业与雇主信息分组聚合运算

3.2.1 对赞助金额进行分组分析并可视化

3.2.3 按照赞助人姓名分组,计算赞助次数最多的前20姓名

4. 时间序列

4.1 str转datetime

4.2 以时间序列作为行索引

4.3 重采样和频度转换

5. 各州支持率与数据地图可视化

5.1 根据候选人和州,进行分组运算

5.2 使用Basemap可视化各州支持率

猜你喜欢

转载自blog.csdn.net/Soft_Po/article/details/89283382