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.rhkb.cn/news/478981.html

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

相关文章

3.http模块

文章目录 [TOC](文章目录) 1、什么是http模块?1.1.作用1.2.服务器相关概念1.2.创建基本的web服务器-实现的核心步骤和代码1.2.1导入http模块1.2.2.req 请求对象 1.3.根据不同的url地址 响应不同的html内容1.4.案例-clock时钟的web服务器 1、什么是http模块&#xff…

【Nginx】核心概念与安装配置解释

文章目录 1. 概述2. 核心概念2.1.Http服务器2.2.反向代理2.3. 负载均衡 3. 安装与配置3.1.安装3.2.配置文件解释3.2.1.全局配置块3.2.2.HTTP 配置块3.2.3.Server 块3.2.4.Location 块3.2.5.upstream3.2.6. mine.type文件 3.3.多虚拟主机配置 4. 总结 1. 概述 Nginx是我们常用的…

uniapp开发微信小程序笔记8-uniapp使用vant框架

前言:其实用uni-app开发微信小程序的首选不应该是vant,因为vant没有专门给uni-app设置专栏,可以看到目前Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。 但是我之前维…

IDEA2024创建一个spingboot项目

以下是创建一个基本的 Spring Boot 项目的步骤和示例: 初始化一个springboot工程其实有许多方法,笔者这里挑了一个最快捷的方式搭建一个项目。我们直接通过官方平台(start.spring.io)进行配置,然后下载压缩包就可以获取…

Easyexcel(7-自定义样式)

相关文章链接 Easyexcel(1-注解使用)Easyexcel(2-文件读取)Easyexcel(3-文件导出)Easyexcel(4-模板文件)Easyexcel(5-自定义列宽)Easyexcel(6-单…

北京航空航天大学多模态自适应攀岩机器人:突破复杂地形挑战

近年来,地外天体探测任务的需求显著增加,尤其是在月球、火星等崎岖地形的探索中,攀岩机器人凭借其灵活性和稳定性成为重要工具。然而,传统攀爬技术在面对复杂地形时仍面临诸多挑战,如附着装置的适应性不足、柔顺性较低…

【Java】二叉树:数据海洋中灯塔式结构探秘(上)

个人主页 🌹:喜欢做梦 二叉树中有一个树,我们可以猜到他和树有关,那我们先了解一下什么是树,在来了解一下二叉树 一🍝、树型结构 1🍨.什么是树型结构? 树是一种非线性的数据结构&…

深度学习基础01_深度学习概述参数初始化激活函数

目录 一、深度学习概述 二、神经网络 1、感知神经网络 2、人工神经元 1.构建 2.组成 3.数学表示 3、深入神经网络 1.基本结构 2.网络构建 3.全连接神经网络 三、数据处理 四、参数初始化 1、固定值初始化 1.全零初始化 2.全1初始化 3.任意常数初始化 2、随机…

从Full-Text Search全文检索到RAG检索增强

从Full-Text Search全文检索到RAG检索增强 时光飞逝,转眼间六年过去了,六年前铁蛋优化单表千万级数据查询性能的场景依然历历在目,铁蛋也从最开始做CRUD转行去了大数据平台开发,混迹包装开源的业务,机缘巧合下做了实时…

C++ 优先算法 —— 无重复字符的最长子串(滑动窗口)

目录 题目: 无重复字符的最长子串 1. 题目解析 2. 算法原理 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口(同向双指针) 3. 代码实现 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口 题目: 无重复字符的最长子串 1. 题目解析 题目截图: 此题所说的…

【pyspark学习从入门到精通19】机器学习库_2

目录 估计器 分类 回归 聚类 管道 估计器 估计器可以被看作是需要估算的统计模型,以便对您的观测值进行预测或分类。 如果从抽象的 Estimator 类派生,新模型必须实现 .fit(...) 方法,该方法根据在 DataFrame 中找到的数据以及一些默认或…

JAVA---IO

目录 IO流 一 字节流 1 FileOutStream 1 书写: 2 换行书写与续写: 2 FileInputStream 1 读取数据 2 循环读取: 二 字符流 1 FileReader 1 空参的read()方法读取数据: 2 有参的read()方法读取数据: 3 指定字…

4.6 JMeter HTTP信息头管理器

欢迎大家订阅【软件测试】 专栏,开启你的软件测试学习之旅! 文章目录 前言1 HTTP信息头管理器的位置2 常见的HTTP请求头3 添加 HTTP 信息头管理器4 应用场景 前言 在 JMeter 中,HTTP信息头管理器(HTTP Header Manager&#xff09…

C语言解析命令行参数

原文地址:C语言解析命令行参数 – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 C语言有一个 getopt 函数,可以对命令行进行解析,下面给出一个示例,用的时候可以直接copy过去修改,很方便…

Android 11 三方应用监听关机广播ACTION_SHUTDOWN

前言 最近有项目过程中,有做app的同事反馈,三方应用无法监听关机广播。特地研究了下关机广播为啥监听不到。 1.原因:发送关机广播的类是ShutdownThread.java,添加了flag:Intent.FLAG_RECEIVER_FOREGROUND | Intent.FLAG_RECEIVER…

【Python】九大经典排序算法:从入门到精通的详解(冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、基数排序、桶排序)

文章目录 1. 冒泡排序(Bubble Sort)2. 选择排序(Selection Sort)3. 插入排序(Insertion Sort)4. 归并排序(Merge Sort)5. 快速排序(Quick Sort)6. 堆排序&…

计算机毕业设计Hadoop+Spark音乐推荐系统 音乐预测系统 音乐可视化大屏 音乐爬虫 HDFS hive数据仓库 机器学习 深度学习 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

深入理解 Java 基本语法之运算符

(一)研究背景 在 Java 编程中,运算符是处理数据和变量的基本工具,掌握各种运算符的使用方法对于提高编程效率至关重要。 (二)研究目的 深入理解 Java 基础运算符的概念、分类和作用,通过具体…

【微服务】 Eureka和Ribbon

一、Eureka 服务调用出现的问题:在远程调用另一个服务时,我们采用的解决办法是发送一次http请求,每次环境的变更会产生新的地址,所以采用硬编码会出现很多麻烦,并且为了应对并发问题,采用分布式部署&#…

计算机毕业设计Python+大模型美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…