需求
    加载数据
    查看数据的基本信息
    指定数据截取,将如下字段的数据进行提取,其他数据舍弃
     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-美国大选献金分析相关推荐

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

    文章目录 1.数据载入与预览 1.1 数据加载 1.2 数据合并 1.3 数据预览 1.3.1 查看是否有空值 1.3.2用统计学指标快速描述数值型属性的概要 2.数据的预处理 2.1 数据清洗 2. ...

  2. 3 Python数据分析 美国各州人口分析案例 Pandas高级操作 美国大选献金案例 matplotlib

    Python数据分析 1 案例 美国各州人口分析 1.1 数据介绍 数据来源:https://github.com/jakevdp/data-USstates/ 1.1.1 州人口数量表 state- ...

  3. 【数据分析】使用pandas和numpy分析美国大选献金项目

    1. 数据载入与总览 1.1 数据加载 #绘图工具 import matplotlib.pyplot as plt %matplotlib inline #数据处理工具 import numpy as ...

  4. 项目3:美国大选献金目数据分析

    """ 需求: 1.读取数据 2.查看是否有缺失数据 3.用统计学指标快速描述数值型属性的概要 4.空值处理.可能因为忘记填写保密等原因,相关字段出现了空值,将其填充为N ...

  5. 数据分析---2012美国大选献金项目数据分析

    需求: 1. 加载数据 df = pd.read_csv('./data/usa_election.txt') 2. 对新数据进行总览,查看是否存在缺失数据: 方法一:isnull.notnull.a ...

  6. 2012美国大选献金项目(最详细解释)

    1. 数据载入和总览 import numpy as npimport pandas as pdfrom pandas import Series,DataFrame 1.1 数据载入 df1 = p ...

  7. 美国大选献金项目学习笔记

    目录 要求 代码: 要求 代码: import numpy as np import pandas as pddf = pd.read_csv('./data/usa_election.txt')# ...

  8. python数据分析实例2012美国总统竞选赞助分析

    1.数据加载 import pandas as pd import numpy as np import matplotlib.pyplot as pltdata1=pd.read_csv('data ...

  9. python建筑案例_Python数据分析实战-链家北京二手房价分析

    前言 最近在自学Python,通过学习大家的分享案例,看到使用Python进行较多的主要4个方面:爬虫,数据处理,数据可视化以及机器学习建模.对我来说目标就是: 熟练使用numpy pandas 进行 ...

最新文章

  1. Chapter2 消息总线 ConfigClient配置自动刷新
  2. Leetcode5633. 计算力扣银行的钱[C++题解]:模拟简单
  3. python while函数_详解python while 函数及while和for的区别
  4. 【整理】SAP PM工厂维护模块初识
  5. python 输入参数获取_python获取输入参数
  6. Swift - 从字典(或者Alamofire)直接创建Model文件的工具
  7. python景点情感分析代码_python snownlp情感分析简易demo(分享)
  8. 【spark】Spark通过ClickHouse-Native-JDBC写入Clickhouse
  9. lstm中look_back的大小选择_LSTM 扫盲:长短期记忆网络解读及其 PyTorch 应用实现
  10. 万万没想到:从啤酒评分 app 中竟能找到情报人员和军人的敏感信息
  11. 矩阵的逆和矩阵的转置运算公式对比
  12. 算法导论第三版 第3章习题答案
  13. 金融信贷风控中的机器学习
  14. android自定义多选框 带图片,Android自定义单选多选下拉列表的实例代码
  15. Protege-OWL API中文版
  16. 车载监控4大趋势,TSINGSEE助力车载视频监控高清、智能化发展
  17. 我的世界观——阿尔伯特·爱因斯坦
  18. 案例 | 看某国有大行如何构建内部数据安全风险管控核心能力
  19. 食物网的结构动力学和鲁棒性 | Structural dynamics and robustness of food webs
  20. 软件项目管理 第12讲 软件项目跟踪

热门文章

  1. 大数据毕业设计 股票量化分析与股票预测系统 - Python
  2. php实现图片上传和显示,上传和显示图片 - php - 生活点滴
  3. 【工具总结】前端常用辅助工具
  4. html语言中可视化标签,eyoucms uihtml 带html富文本可视化标签
  5. 【基础篇】详解Zookeeper客户端Curator
  6. Python 是前浪,Julia 是后浪?
  7. 安全测试常用的工具有哪些?这些不能少!
  8. @Pointcut 使用@annotation 带参数
  9. 小规模企业如何做账 e-mail_小规模纳税人内资企业如何入帐?
  10. Android数据库操作