Python数据分析实例五、US 大选捐款数据分析

美国联邦选举委员会 (FEC) 公布了对政治竞选活动的贡献数据。这包括投稿人姓名、职业和雇主、地址和投款金额。2012 年美国总统大选的贡献数据以单个 150 MB 的 CSV 文件P00000001-ALL.csv形式提供,该文件可以通过以下pandas.read_csv加载:

import pandas as pdfec = pd.read_csv("datasets/fec/P00000001-ALL.csv", low_memory=False)
print(fec.info())
print(fec.iloc[123]) # 示例记录

加载成DataFrame输出该对象内容信息:

864f6cce2f0a463285eb7b7fce3bcbf1.png

这个DataFrame 中的示例记录如下所示:

9af7a09de2c44067b0f7061e66240264.png

数据中没有政党隶属关系,因此添加此关系数据非常有用。可以使用 unique 获取所有唯一政治候选人的列表:

import pandas as pdfec = pd.read_csv("datasets/fec/P00000001-ALL.csv", low_memory=False)unique_cands = fec["cand_nm"].unique()
print(unique_cands)
print(unique_cands[2])

unique_cands 输出:

['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']

unique_cands[2] 输出: Obama, Barack

我们使用字典来表示党派关系:

# 用字典表示候选人所属政党
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"}

现在,使用此字典映射和 Series 对象上的 map 方法,可以从候选人名字中计算政党数组:

import pandas as pdfec = pd.read_csv("datasets/fec/P00000001-ALL.csv", low_memory=False)
print(fec.info())
print(fec.iloc[123]) # 示例记录unique_cands = fec["cand_nm"].unique()# 用字典表示候选人所属政党
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"}print(fec["cand_nm"][123456:123461])
print(fec["cand_nm"][123456:123461].map(parties))# 将政党关系映射作为party列添加到fec对象
fec["party"] = fec["cand_nm"].map(parties)
fec_party_count = fec["party"].value_counts()
print(fec_party_count)

print(fec["cand_nm"][123456:123461]) 输出:

ea7f69d3e58a436b8f0ce34155fdbb82.png

print(fec["cand_nm"][123456:123461].map(parties)) 输出:

a7f36474ab724ee3b07149713a82461d.png

print(fec_party_count) 输出:

0fb67458b7754d6eb9eed1a7b594143e.png

准备几个数据准备点。此数据包括供款和退款,为了简化分析,我们将数据集限制为正贡献(捐款)。由于 Barack Obama 和 Mitt Romney 是主要的两位候选人,我们还准备一个子集,其中只包含对他们的竞选活动是有所贡献的数据子集:

import pandas as pdfec = pd.read_csv("datasets/fec/P00000001-ALL.csv", low_memory=False)
print(fec.info())
print(fec.iloc[123]) # 示例记录unique_cands = fec["cand_nm"].unique()# 用字典表示候选人所属政党
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"}# 将政党关系映射作为party列添加到fec对象
fec["party"] = fec["cand_nm"].map(parties)
fec_party_count = fec["party"].value_counts()temp = (fec["contb_receipt_amt"] > 0).value_counts()
print(temp)
fec = fec[fec["contb_receipt_amt"] > 0]
fec_mrbo = fec[fec["cand_nm"].isin(["Obama, Barack", "Romney, Mitt"])]

一、按职业及雇主划分的捐款统计数字

按职业划分的捐款量是一个经常被研究的统计数据。例如,律师倾向于向民主党人捐赠更多的钱,而企业高管倾向于向共和党人捐赠更多。首先,按职业划分的捐赠总数可以用 value_counts 计算:

import pandas as pdfec = pd.read_csv("datasets/fec/P00000001-ALL.csv", low_memory=False)
#print(fec.info())
#print(fec.iloc[123]) # 示例记录unique_cands = fec["cand_nm"].unique()# 用字典表示候选人所属政党
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"}# 将政党关系映射作为party列添加到fec对象
fec["party"] = fec["cand_nm"].map(parties)
fec_party_count = fec["party"].value_counts()temp = (fec["contb_receipt_amt"] > 0).value_counts()
#print(temp)
fec = fec[fec["contb_receipt_amt"] > 0]
fec_mrbo = fec[fec["cand_nm"].isin(["Obama, Barack", "Romney, Mitt"])]# 按职业划分 统计捐赠量 由于数据量太大取前10个观察
temp10 = fec["contbr_occupation"].value_counts()[:10]
print(temp10)

输出按职业划分统计的捐赠量(前10个):

cbc8c5b154b74849a3f0714044cda7ee.png

从上面的职业输出可以看出,许多人的职业名称虽然不同,但指的是相同的基本工作类型。下面我们用代码实现从一个职业映射到另一个职业来,清理其中一些相同类型职业。请注意下面代码中使用 dict.get 允许没有映射的职业也能“传递”的 “技巧”:

import pandas as pdfec = pd.read_csv("datasets/fec/P00000001-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/60958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络命令Linux

目录 一,Linux 二,CMD 一,Linux ping www.baidu.com 测试联网 -c 2 次数,ping几次 , -i 间隔 -W timeout 超时时间,等待响应的超时时间 ss -lntup |grep -w 22 netstat -lntup |grep -w 22 lsof -i:22 ls…

vue3项目搭建-3-Pinia的使用

Pinia 是集中状态管理工具 基本用法 Pinia 是 Vue 的专属的最新状态管理库,是 Vuex 状态管理工具的替代品 官方文档:pinia官方文档 找到开始目录,根据文档安装和入门 pinia,启用一个新的终端,输入指令 npm install…

docker部署的服务器数据备份

需要备份的数据可以分为三类 数据库文件volumes文件夹挂载volumes具名挂载 下面将针对三类数据具体描述备份方法 数据库文件 进入mysql容器中 docker exec it containerName /bin/bashcontainerName :mysql容器的名称 导出数据 mysgldump -u userName -p dbNa…

Flink Standalone 集群模式安装部署教程

目录 一、前言 二、环境准备 三、安装步骤 1. 下载并安装 Flink 4. 配置 Flink 5. 配置环境变量 6. 启动 Flink 集群 7. 访问 Flink Web 界面 四、简单测试 五、常见问题和解决办法 1. 启动失败,无法连接到 TaskManager 2. Web 界面无法访问 六、总结 …

Spring Boot 开发环境搭建详解

下面安装spring boot的详细步骤,涵盖了从安装 JDK 和 Maven 到创建和运行一个 Spring Boot 项目的全过程。 文章目录 1. 安装 JDK步骤 1.1:下载 JDK步骤 1.2:安装 JDK步骤 1.3:配置环境变量 2. 安装 Maven步骤 2.1:下载…

SAP开发语言ABAP开发入门

1. 了解ABAP开发环境和基础知识 - ABAP简介 - ABAP(Advanced Business Application Programming)是SAP系统中的编程语言,主要用于开发企业级的业务应用程序,如财务、物流、人力资源等模块的定制开发。 - 开发环境搭建 - 首先需…

阿里云快照:数据保护与恢复的重要工具

在云计算环境中,快照(Snapshot)是指对云服务器(ECS)或云硬盘(Cloud Disk)某一时刻的数据状态进行保存的副本。阿里云提供的快照功能使得用户能够高效地备份数据、快速恢复系统以及进行灵活的数据…

修改bag的frame_id的工具srv_tools

在使用数据集导航或者建图时,bag中的点云或者其他话题的frame_id没有和需要的对应 1.创建工作空间 2.cd xxxx/src 3.git clone https://github.com/srv/srv_tools.git cd .. catkin_make source ./devel/setup.bash rosrun bag_tools change_frame_id.py -t /要改…

RK3588-LinuxSDK安装

安装依赖软件 执行如下命令,安装 LinuxSDK 开发包依赖软件。 备注:安装过程中,请保证 Ubuntu 可正常访问互联网,若提示"*** is already the newest version ***"表示该软件已安装,请忽略。 Host# sudo apt-get install -y git ssh make gcc libssl-dev \ liblz…

大语言模型---什么是注意力机制?LlaMA 中注意力机制的数学定义

摘要 注意力机制(Attention Mechanism)是一种在深度学习和人工智能中广泛使用的技术,旨在使模型在处理信息时能够重点关注重要的部分,从而提升任务的效率和精度。它最初应用于自然语言处理(NLP)&#xff0…

IDEA2023版本配置项目全局编码

IDEA默认的项目编码是UTF-8,有时候拿到别人的代码使用的编码是GBK,虽然可以在idea右下角进行修改,但是一个一个的修改太慢了。所以需要去进行该项目的编码全局配置。接下来直接讲步骤,以IDEA2023版本为例。 第一步 File>Sett…

大数据学习18之Spark-SQL

1.概述 1.1.简介 Spark SQL 是 Apache Spark 用于处理结构化数据的模块。 1.2.历史 1.2.1.Shark Hadoop诞生初期,Hive是唯一在Hadoop上运行的SQL-on-Hadoop工具,MR的中间计算过程产生了大量的磁盘落地操作,消耗了大量的I/O,降低…

【Android】Service使用方法:本地服务 / 可通信服务 / 前台服务 / 远程服务(AIDL)

1 本地Service 这是最普通、最常用的后台服务Service。 1.1 使用步骤 步骤1:新建子类继承Service类:需重写父类的onCreate()、onStartCommand()、onDestroy()和onBind()方法步骤2:构建用于启动Service的Intent对象步骤3:调用st…

QML学习 —— 34、视频媒体播放器(附源码)

效果 说明 您可以单独使用MediaPlayer播放音频内容(如音频),也可以将其与VideoOutput结合使用以渲染视频。VideoOutput项支持未转换、拉伸和均匀缩放的视频演示。有关拉伸均匀缩放演示文稿的描述,请参见fillMode属性描述。 播放可能出错问题 出现的问题:      DirectS…

Spring MVC练习(前后端分离开发实例)

White graces:个人主页 🙉专栏推荐:Java入门知识🙉 🐹今日诗词:二十五弦弹夜月,不胜清怨却飞来🐹 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏 ⛳️点赞 ☀️收藏⭐️关注&#x1f4…

对docker安装的mysql实现主从同步

1:分别安装mysql主,从数据库 将主库容器名称改为mysql_master,将从库容器名称改为mysql_slave 安装教程:docker安装mysql 2:配置主库的my.cnf挂载文件 [mysqld] #log-bin:表示启用binlog功能,并指定二进制日志的存储目录。 log-binmysql-bin #binlog_f…

探索 Spring 框架核心组件:构建强大 Java 应用的基石

Spring框架作为Java企业级开发的首选框架之一,其强大的功能和灵活的架构深受开发者喜爱。Spring框架的核心组件共同构建了一个高效、可扩展的应用程序开发平台。本文将深入探讨Spring框架的核心组件,揭示它们如何在Spring框架中发挥关键作用。 一、Bean…

如何把大模型调教成派大星?

目录 主要内容模型图实验结果如何把大模型变成派大星?chatglm3-6B 数据集准备代码运行微调结果 文章声明:非广告,仅个人体验:参考文献:https://www.aspiringcode.com/content?id17197387451937&uid291a2ae1546b48…

国土安全部发布关键基础设施安全人工智能框架

美国国土安全部 (DHS) 发布建议,概述如何在关键基础设施中安全开发和部署人工智能 (AI)。 https://www.dhs.gov/news/2024/11/14/groundbreaking-framework-safe-and-secure-deployment-ai-critical-infrastructure 关键基础设施中人工智能的角色和职责框架 https:/…

异或操作解决一些问题

前提: 异或操作符合交换律,结合律(因为其根本上来抽象理解,就是查看所有项二进制数相同位是否有奇数个1,对运算结果二进制数而言,没有该位为0,有该位为1,与顺序无关)。 …