美国大选献金项目数据分析

需求

  • 加载数据
  • 查看数据的基本信息
  • 指定数据截取,将如下字段的数据进行提取,其他数据舍弃
    • cand_nm :候选人姓名
    • contbr_nm : 捐赠人姓名
    • contbr_st :捐赠人所在州
    • contbr_employer : 捐赠人所在公司
    • contbr_occupation : 捐赠人职业
    • contb_receipt_amt :捐赠数额(美元)
    • contb_receipt_dt : 捐款的日期
  • 对新数据进行总览,查看是否存在缺失数据
  • 用统计学指标快速描述数值型属性的概要。
  • 空值处理。可能因为忘记填写或者保密等等原因,相关字段出现了空值,将其填充为NOT PROVIDE
  • 异常值处理。将捐款金额<=0的数据删除
  • 新建一列为各个候选人所在党派party
  • 查看party这一列中有哪些不同的元素
  • 统计party列中各个元素出现次数
  • 查看各个党派收到的政治献金总数contb_receipt_amt
  • 查看具体每天各个党派收到的政治献金总数contb_receipt_amt
  • 将表中日期格式转换为’yyyy-mm-dd’。
  • 查看老兵(捐献者职业)DISABLED VETERAN主要支持谁

import pandas as pd
from pandas import DataFrame
import numpy as np

df = pd.read_csv(‘./usa_election.csv’)
df.head()
在这里插入图片描述
在这里插入图片描述

df = df[[‘cand_nm’,‘contbr_nm’,‘contbr_st’,‘contbr_employer’,‘contbr_occupation’,‘contb_receipt_amt’,‘contb_receipt_dt’]]
df.head(5)
在这里插入图片描述

#对新数据进行总览,查看是否存在缺失数据
df.info()
在这里插入图片描述

#用统计学指标快速描述数值型属性的概要。
df.describe() #默认情况下是对df中的数值型数据进行统计描述
在这里插入图片描述

#对非数值型数据进行统计描述
df[[‘cand_nm’,‘contbr_nm’,‘contbr_st’,‘contbr_employer’,‘contbr_occupation’,‘contb_receipt_dt’]].describe()
在这里插入图片描述

#空值处理。可能因为忘记填写或者保密等等原因,相关字段出现了空值,将其填充为NOT PROVIDE
df.fillna(value=‘NOT PROVIDE’,inplace=True)

#异常值处理。将捐款金额<=0的数据删除
df.loc[df[‘contb_receipt_amt’] <= 0] #获取了异常数据对应的行数据
indexs = df.loc[df[‘contb_receipt_amt’] <= 0].index #获取了异常数据对应的行索引
df.drop(index=indexs,inplace=True)

#新建一列为各个候选人所在党派party

#可以通过百度搜索,找到每一个候选人对应的党派
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’
}
df[‘party’] = df[‘cand_nm’].map(parties)

#查看party这一列中有哪些不同的元素
df[‘party’].unique()
array([‘Republican’, ‘Democrat’, ‘Reform’, ‘Libertarian’], dtype=object)
#统计party列中各个元素出现次数
df[‘party’].value_counts()
在这里插入图片描述

#查看各个党派收到的政治献金总数contb_receipt_amt
df.groupby(by=‘party’)[‘contb_receipt_amt’].sum()
在这里插入图片描述

#注意:在Series中调用一个reset_index()可以将其快速变为df表格的样式
df.groupby(by=‘party’)[‘contb_receipt_amt’].sum().reset_index()
在这里插入图片描述

df.pivot_table(index=‘party’,values=‘contb_receipt_amt’,aggfunc=‘sum’)
在这里插入图片描述

#查看具体每天各个党派收到的政治献金总数contb_receipt_amt
df.groupby(by=[‘contb_receipt_dt’,‘party’])[‘contb_receipt_amt’].sum()
在这里插入图片描述

ret = df.pivot_table(index=[‘contb_receipt_dt’,‘party’],values=‘contb_receipt_amt’,aggfunc=‘sum’)
ret
在这里插入图片描述

#将表中日期格式转换为’yyyy-mm-dd’。
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}
def transform_date(d):
day,month,year = d.split(‘-’)
month = months[month]
return ‘20’+year+‘-’+str(month)+‘-’+day
df[‘contb_receipt_dt’] = df[‘contb_receipt_dt’].map(transform_date)

#查看老兵(捐献者职业)DISABLED VETERAN主要支持谁
data = df.loc[df[‘contbr_occupation’] == ‘DISABLED VETERAN’]#取出了老兵对应的行数据
#分析老兵给哪位候选人捐赠的金额是最多的
data.groupby(by=‘cand_nm’)[‘contb_receipt_amt’].sum().sort_values(ascending=False)
在这里插入图片描述

#分析老兵给哪位候选人捐赠的次数是最多的
#size用来统计每组数据的行数
data.groupby(by=‘cand_nm’).size().sort_values(ascending=False)
在这里插入图片描述
源文件和模拟测试源可在这里下载:
https://download.csdn.net/download/ak2111/89036112?spm=1001.2014.3001.5501
内容来自大数据分析课程。

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

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

相关文章

搭建Flutter开发环境、从零基础到精通(文末送书【北大出版社】)

目录 搭建开发环境 1. 下载Flutter SDK 2. 设置镜像地址及环境变量 3. 安装与设置Android Studio 4. 安装Visual Studio Code与Flutter开发插件 5. IDE的使用和配置 6. 安装Xcode 7. 检查Flutter开发环境 好书推荐 内容简介 作者简介 搭建开发环境 Flutter可以跨平…

selenium完结篇,补充知识点

1、前两期没看的建议先去看前两期博客 2、选择框的勾选 getAttribute("type")是获取属性的意思 List<WebElement> webElementswebDriver.findElements(By.cssSelector("input"));for(int i0;i<webElements.size();i){if(webElements.get(i).getA…

使用npm i进行admin依赖安装的时候出现问题

提示&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/string-width failed, reason: certificate has expired 切换淘宝源到http或者更换其他国内镜像 npm config set registry http:/…

Salesforce宣布将停用Workflow Rules和Process Builder!

在近期的公告中&#xff0c;Salesforce透露在2025年12月31日之后将不再支持Workflow Rules和Process Builder。 Salesforce敦促用户在截止日期前将其自动化流程迁移到Flow Builder&#xff0c;以确保不间断的支持和漏洞修复。此举正值Salesforce将重点转向更现代、可扩展、低代…

rust中常用cfg属性和cfg!宏的使用说明,实现不同系统的条件编译

cfg有两种使用方式&#xff0c;一种是属性&#xff1a; #[cfg()]&#xff0c;一种是宏&#xff1a;cfg! &#xff0c;这两个都是非常常用的功能。 #[cfg()]是 Rust 中的一个属性 用于根据配置条件来选择性地包含或排除代码。cfg 是 "configuration" 的缩写&#xf…

Web举例:防火墙二层,上下行连接交换机的主备备份组网

Web举例&#xff1a;防火墙二层&#xff0c;上下行连接交换机的主备备份组网 介绍了业务接口工作在二层&#xff0c;上下行连接交换机的主备备份组网的Web举例。 组网需求 如图1所示&#xff0c;两台FW的业务接口都工作在二层&#xff0c;上下行分别连接交换机。FW的上下行业…

中小型集群部署,Docker Swarm(集群)使用及部署应用介绍

1、Docker Swarm简介 说到集群&#xff0c;第一个想到的就是k8s&#xff0c;但docker官方也提供了集群和编排解决方案&#xff0c;它允许你将多个 Docker 主机连接在一起&#xff0c;形成一个“群集”&#xff08;Swarm&#xff09;&#xff0c;并可以在这个 Swarm 上运行和管…

Go语言学习Day4:函数(上)

名人说&#xff1a;莫愁千里路&#xff0c;自有到来风。 ——钱珝 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、函数的概念与定义①函数的概念②函数的具体定义③多返回值 2、函数参数与作用域①可变参数②形…

【零基础C语言】文件操作

目录 理解文件操作 什么是文件 程序文件 数据文件 文件名字 二进制文件和文本文件 文件的打开和关闭 文件的打开和关闭操作 实验1&#xff0c;打开一个文件并且输入26个字母 打开读取文件text.txt ,并且将它拷贝进text_cpy.txt 使用 fputs 和 fgets 函数 使用 fprintf函…

【计算机网络】IP 协议

网络层IP协议 一、认识 IP 地址二、IP 协议报头格式三、网段划分1. 初识子网划分2. 理解子网划分3. 子网掩码4. 特殊的 IP 地址5. IP 地址的数量限制6. 私有 IP 地址和公网 IP 地址7. 理解全球网络&#xff08;1&#xff09;理解公网&#xff08;2&#xff09;理解私网&#xf…

华为汽车图谱

极狐 极狐&#xff08;ARCFOX&#xff09;是由北汽、华为、戴姆勒、麦格纳等联合打造。总部位于北京蓝谷。 问界 华为与赛力斯&#xff08;东风小康&#xff09;合作的成果。 阿维塔 阿维塔&#xff08;AVATR&#xff09;是由长安汽车、华为、宁德时代三方联合打造。公司总部位…

canal: 连接kafka (docker)

一、确保mysql binlog开启并使用ROW作为日志格式 docker 启动mysql 5.7配置文件 my.cnf [mysqld] log-binmysql-bin # 开启 binlog binlog-formatROW # 选择 ROW 模式 server-id1一定要确保上述两个值一个为ROW&#xff0c;一个为ON 二、下载canal的run.sh https://github.c…

一周学会Django5 Python Web开发-Django5模型定义

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计41条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

26. BI - PageRank 拓展以及如何利用 networkx 来分析希拉里丑闻

本文为 「茶桁的 AI 秘籍 - BI 篇 第 26 篇」 Hi, 我是茶桁. 上节课咱们讲解了 PageRank 的两种模型, 并分别做了代码上的演示. 这节课, 让我们来看看 PageRank 的影响力及其应用. PageRank 已经超越了原来提出来的模型, 因为 PageRank 的影响力影响到了后续很多的一些模型, …

我的创作纪念日 ---- 2024/3/26

前言 2024.3.26是我在CSDN成为创作者的第128天&#xff0c;也是我第一次真正在网上创作的第128天 当我还在日常创作时&#xff0c;突然发现我收到了一封信 我想我可以分享一下这段时间的感想以及收获 机缘 在CSDN的这段时间里&#xff0c;我学习到了很多知识&#xff0c;也…

数据结构——链表(单链表)

大家好&#xff0c;又是我&#xff08;小锋&#xff09;&#xff0c;今天给大家带了一个比较有挑战的章节&#xff08;链表&#xff09;&#xff0c;但是不用担心&#xff0c;小锋会陪大家一起度过。 顺序表的思考与问题 1. 中间/头部的插入删除&#xff0c;时间复杂度为O(N) …

【python】flask模板渲染引擎Jinja2,通过后端数据渲染前端页面

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Spring Cloud 八:微服务架构中的数据管理

Spring Cloud 一&#xff1a;Spring Cloud 简介 Spring Cloud 二&#xff1a;核心组件解析 Spring Cloud 三&#xff1a;API网关深入探索与实战应用 Spring Cloud 四&#xff1a;微服务治理与安全 Spring Cloud 五&#xff1a;Spring Cloud与持续集成/持续部署&#xff08;CI/C…

Eladmin-jpa基于SpringBoot和Vue的前后端分离后台管理系统​

在当今快速发展的软件开发领域&#xff0c;前后端分离的架构模式已经成为主流。这种架构模式不仅可以提高开发效率&#xff0c;还能使系统更加易于维护和扩展。Eladmin-jpa是一个基于Spring Boot 2.6.4、Spring Boot Jpa、JWT、Spring Security、Redis和Vue的前后端分离的后台管…

JS等比压缩图片方法

AI给出来的答案&#xff0c;AI真的能改变世界&#xff0c;以后程序员这个职业真的有可能不存在了。 function compressImage(image, callback) {// 创建一个 canvas 元素const canvas document.createElement(canvas);canvas.width 48;canvas.height 48;// 获取 canvas 的绘…