《利用Python进行数据分析》 第二版

《利用Python进行数据分析》 14.5 2012年联邦选举委

2019-01-01  本文已影响88人  CCC考研

第十四章 数据分析示例

:本章示例数据集可在附带的GitHub仓库(http://github.com/wesm/pydata-book)中找到


14.5 2012年联邦选举委员会数据库

       美国联邦选举委员会公布了有关政治运动贡献的数据。这些数据包括捐赠者姓名、职业和雇主、地址和缴费金额。一个有趣的数据来自2012年美国总统大选。我在2012年6月下载的一个数据集版本是一个150兆字节的CSV文件P00000001-ALL.csv(请参阅本书的数据存储库)

1.使用pandas.read_csv载入数据(见图14-1)

图14-1:载入数据

2.观察样本记录(见图14-2)

图14-2:样本记录

3.使用unique获得所有不同的政治候选人名单(见图14-3)

图14-3:候选人名单

4.使用相应的字典表示政党背景(见图14-4)

图14-4:表示政党背景

5.在Series对象上使用map方法和上述的映射关系,从候选人姓名中计算出政党的数组(见图14-5)

图14-5:计算政党数组

6.数据准备要点(见图14-6)

图14-6:数据分析要点

14.5.1 按职业和雇主的捐献统计

       根据职业分析捐献是一个常见的统计分析。例如,律师(法律代理人)倾向于捐更多的钱给民主党,而商务人士则倾向于捐更多的钱给共和党。你没有任何理由相信我,你可以自己看数据。

1.首先,获得按职业的捐献总数(见图14-7)

图14-7:按职业捐献总数

2.通过将一种工作匹配到另一种来清理工作种类(见图14-8)

图14-8:清理工作种类

:使用dict.get存在一种"陷阱",允许没有映射的职业"通过"

3.使用pivot_table按党派和职业聚合数据,然后过滤出至少捐赠200万美元的子集(见图14-9)

图14-9:聚合、过滤

4.以条形图的方式进行数据可视化更为简单('barh’表示水平条形图,参见图14-10)

图14-10:按党派划分各职业捐赠总量

5.按候选人名称进行分组,并使用本章前面的top方法的变体(见图14-11)

图14-11:分组函数

6.按职业和雇主进行聚合(见图14-12)

图14-12:聚合

14.5.2 捐赠金额分桶

1.使用cut函数将贡献者的数量按贡献大小离散化分桶(见图14-13)

图14-13:分桶

2.将Obama和Romney的数据按名称和分类标签进行分组(见图14-14)

图14-14:分组

3.对捐款数额进行求和并在桶内进行归一化,以便对按候选人划分的捐款总额百分比进行可视化(见图14-15)

图14-15:不同捐赠规模的候选人收到的捐赠总额的百分比

:排除了两个最大的箱体,因为这些箱体不是由个人捐赠的。

       这种分析可以通过多种方式进行改进和提高。例如,你可以通过捐助者姓名和邮政编码聚合捐款,以便为那些进行很多次小额捐赠的人进行调整,他们并不会进行大型捐赠。


14.5.3 按州进行捐赠统计

1.将数据按照候选人和州进行聚合(见图14-16)

图14-16:  将数据按照候选人和州进行聚合

2.将每一行除以捐款总额,得到每个候选人按州的捐赠总额的相对百分比(见图14-17)

图14-17:每个候选人按州的捐赠总额的相对百分比
上一篇下一篇

猜你喜欢

热点阅读