数据分析项目3-美国大选献金分析
需求
加载数据
查看数据的基本信息
指定数据截取,将如下字段的数据进行提取,其他数据舍弃
cand_nm: 候选人姓名
contbr_nm:捐赠人所在州
contbr_employer:捐赠人所在公司
contbr_occupation:捐赠人职业
contbr_receipt_amt:捐赠数额(美元)
contbr_receipt_dt:捐款的日期
对新数据进行总览,查看是否存在缺失数据
用统计学指标快速描述数值型属性的概要。
空值处理。可能因为忘记填写或者保密等等原因,相关字段出现了空值,将其填充为NOT PROVIDE
异常值处理。将捐款金额<=0的数据删除
新建一列为各个候选人所在党派party
查看party这一列中有哪些不同的元素
统计party列中各个元素出现次数
查看各个党派收到的政治献金总数contb_receipt_amt
查看具体每天各个党派收到的政治献金总contb_receipt_amt
将表中日期格式转换为'yyyy-mm-dd'。
查看老兵(捐献者职业)DISABLED VETERAN主要支持谁
import numpy as np
import pandas as pddf = pd.read_csv("./data/usa_election-Copy1.txt")# 方便操作,将月份和参选人以及所在政党进行定义:
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}of_interest = ['Obama,Barack','Romney,Mitt','Santorum,Rick','Paul,Ron','Gingrich','Newt']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.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 536041 entries, 0 to 536040
Data columns (total 16 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 cmte_id 536041 non-null object 1 cand_id 536041 non-null object 2 cand_nm 536041 non-null object 3 contbr_nm 536041 non-null object 4 contbr_city 536026 non-null object 5 contbr_st 536040 non-null object 6 contbr_zip 535973 non-null object 7 contbr_employer 525088 non-null object 8 contbr_occupation 530520 non-null object 9 contb_receipt_amt 536041 non-null float6410 contb_receipt_dt 536041 non-null object 11 receipt_desc 8479 non-null object 12 memo_cd 49718 non-null object 13 memo_text 52740 non-null object 14 form_tp 536041 non-null object 15 file_num 536041 non-null int64
dtypes: float64(1), int64(1), object(14)
memory usage: 65.4+ MB# 用统计学指标快速描述数值型属性的概要
df.describe()
contb_receipt_amt file_num
count 5.360410e+05 536041.000000
mean 3.750373e+02 761472.107800
std 3.564436e+03 5148.893508
min -3.080000e+04 723511.000000
25% 5.000000e+01 756218.000000
50% 1.000000e+02 763233.000000
75% 2.500000e+02 763621.000000
max 1.944042e+06 767394.000000# 空值处理。可能因为忘记填写或者保密等等原因,相关字段出现了空值,将其填充为NOT PROVIDE
df.fillna(value="NOT PROVIDE",inplace=True)df.info()# 异常处理。将捐款金额<=0 的数据删除
df['contb_receipt_amt']<=0
df[df["contb_receipt_amt"]<=0]
drop_indexs = df[df["contb_receipt_amt"]<=0].index
df.drop(labels=drop_indexs,inplace=True)
df.info()df_need = df[["cand_nm","contbr_nm","contbr_employer","contbr_occupation","contb_receipt_amt","contb_receipt_dt"]]
df_need# 新建一列为各个候选人所在党派party
df_need["party"] = df_need["cand_nm"].map(parties)df_need.head()# 查看party这一列中有哪些不同的元素
df_need["party"].unique()
array(['Republican', 'Democrat', 'Reform', 'Libertarian'], dtype=object)# 统计party列中各个元素出现次数
df_need["party"].value_counts()
Democrat 289999
Republican 234300
Reform 5313
Libertarian 702
Name: party, dtype: int64# 查看各个党派收到的政治献金总数contb_receipt_amt
df_need.groupby(by="party")["contb_receipt_amt"].sum()
party
Democrat 8.259441e+07
Libertarian 4.132769e+05
Reform 3.429658e+05
Republican 1.251181e+08
Name: contb_receipt_amt, dtype: float64# 查看具体每天各个党派收到的政治献金总contb_receipt_amt
df_need.groupby(by=["contb_receipt_dt","party"])["contb_receipt_amt"].sum()
contb_receipt_dt party
01-APR-11 Reform 50.00Republican 12635.00
01-AUG-11 Democrat 182198.00Libertarian 1000.00Reform 1847.00...
31-MAY-11 Republican 313839.80
31-OCT-11 Democrat 216971.87Libertarian 4250.00Reform 3205.00Republican 751542.36
Name: contb_receipt_amt, Length: 1183, dtype: float64# 将表中日期格式转换为'yyyy-mm-dd'。
def transform(d):day,month,year = d.split("-")month = months[month]return "20"+year+"-"+str(month)+"-"+day
df_need["contb_receipt_dt"]= df_need["contb_receipt_dt"].map(transform)
df_need# 查看老兵(捐献者职业)DISABLED VETERAN主要支持谁. 给谁捐赠的钱越多
# 将源数据的老兵这个职业的行数据取出df_need["contbr_occupation"] == "DISABLED VETERAN"
df_old = df_need[df_need["contbr_occupation"] == "DISABLED VETERAN"]
df_olddf_old.groupby(by="cand_nm")["contb_receipt_amt"].sum()
cand_nm
Cain, Herman 300.00
Obama, Barack 4205.00
Paul, Ron 2425.49
Santorum, Rick 250.00
Name: contb_receipt_amt, dtype: float64
数据分析项目3-美国大选献金分析相关推荐
- 2012美国大选献金项目数据分析
文章目录 1.数据载入与预览 1.1 数据加载 1.2 数据合并 1.3 数据预览 1.3.1 查看是否有空值 1.3.2用统计学指标快速描述数值型属性的概要 2.数据的预处理 2.1 数据清洗 2. ...
- 3 Python数据分析 美国各州人口分析案例 Pandas高级操作 美国大选献金案例 matplotlib
Python数据分析 1 案例 美国各州人口分析 1.1 数据介绍 数据来源:https://github.com/jakevdp/data-USstates/ 1.1.1 州人口数量表 state- ...
- 【数据分析】使用pandas和numpy分析美国大选献金项目
1. 数据载入与总览 1.1 数据加载 #绘图工具 import matplotlib.pyplot as plt %matplotlib inline #数据处理工具 import numpy as ...
- 项目3:美国大选献金目数据分析
""" 需求: 1.读取数据 2.查看是否有缺失数据 3.用统计学指标快速描述数值型属性的概要 4.空值处理.可能因为忘记填写保密等原因,相关字段出现了空值,将其填充为N ...
- 数据分析---2012美国大选献金项目数据分析
需求: 1. 加载数据 df = pd.read_csv('./data/usa_election.txt') 2. 对新数据进行总览,查看是否存在缺失数据: 方法一:isnull.notnull.a ...
- 2012美国大选献金项目(最详细解释)
1. 数据载入和总览 import numpy as npimport pandas as pdfrom pandas import Series,DataFrame 1.1 数据载入 df1 = p ...
- 美国大选献金项目学习笔记
目录 要求 代码: 要求 代码: import numpy as np import pandas as pddf = pd.read_csv('./data/usa_election.txt')# ...
- python数据分析实例2012美国总统竞选赞助分析
1.数据加载 import pandas as pd import numpy as np import matplotlib.pyplot as pltdata1=pd.read_csv('data ...
- python建筑案例_Python数据分析实战-链家北京二手房价分析
前言 最近在自学Python,通过学习大家的分享案例,看到使用Python进行较多的主要4个方面:爬虫,数据处理,数据可视化以及机器学习建模.对我来说目标就是: 熟练使用numpy pandas 进行 ...
最新文章
- Chapter2 消息总线 ConfigClient配置自动刷新
- Leetcode5633. 计算力扣银行的钱[C++题解]:模拟简单
- python while函数_详解python while 函数及while和for的区别
- 【整理】SAP PM工厂维护模块初识
- python 输入参数获取_python获取输入参数
- Swift - 从字典(或者Alamofire)直接创建Model文件的工具
- python景点情感分析代码_python snownlp情感分析简易demo(分享)
- 【spark】Spark通过ClickHouse-Native-JDBC写入Clickhouse
- lstm中look_back的大小选择_LSTM 扫盲:长短期记忆网络解读及其 PyTorch 应用实现
- 万万没想到:从啤酒评分 app 中竟能找到情报人员和军人的敏感信息
- 矩阵的逆和矩阵的转置运算公式对比
- 算法导论第三版 第3章习题答案
- 金融信贷风控中的机器学习
- android自定义多选框 带图片,Android自定义单选多选下拉列表的实例代码
- Protege-OWL API中文版
- 车载监控4大趋势,TSINGSEE助力车载视频监控高清、智能化发展
- 我的世界观——阿尔伯特·爱因斯坦
- 案例 | 看某国有大行如何构建内部数据安全风险管控核心能力
- 食物网的结构动力学和鲁棒性 | Structural dynamics and robustness of food webs
- 软件项目管理 第12讲 软件项目跟踪