阿里云天池实验室【Python入门系列】用Pandas揭秘美国选民的总统喜好

  • 一、文章说明
  • 二、正文
  • 三、转载说明

一、文章说明

  1. 原有比赛地址:https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12281978.0.0.7d351c277qXzrt&postId=137714
  2. 本文将原有代码的英文标签更换为中文,另附州总捐款热力地图和收到捐赠额最多的两位候选人的总捐赠额变化趋势。对于PAI平台中matplotlib库缺少中文字体的问题,尚未解决。
  3. 代码运行平台为阿里云PAI平台DSW实例。

二、正文

#%%import pandas as pd# 读取候选人信息,由于原始数据没有表头,需要添加表头
candidates = pd.read_csv("weball20.txt", sep = '|',names=['候选人识别','候选人名字','挑战者现任状态','团体代码','政党隶属关系','总收入','来自授权委员会的转账','总支出','转到授权委员会','期初现金','期末现金','候选人的贡献','候选人贷款','其他贷款','候选贷款还款','其他还款','所欠债务','个人捐款总额','候选状态','候选区','特别选举状态','初选状态','径流选举状态','大选状态','大选百分比','其他政治委员会的贡献','党委的贡献','承保范围结束日期','退款给个人','退还给委员会'])candidates#%%# 读取候选人和委员会的联系信息
ccl = pd.read_csv("ccl.txt", sep = '|',names=['候选人识别','候选人选举年','FEC选举年','申报人识别号','委员会类型','委员会指定','链接ID'])ccl#%%# 读取个人捐赠数据,由于原始数据没有表头,需要添加表头
# 提示:读取本文件大概需要5-10s
itcont = pd.read_csv('itcont_2020_20200722_20200820.txt', sep='|',names=['申报人识别号','修正指标','报告类型','主要指标','图片编号','交易类型','实体类型','贡献者','城市','州','邮政编码','雇主','职业','交易日期','交易金额','其他识别号码','交易编号','档案编号','备注代码','备忘文字','FEC记录号'])itcont#%%# 关联两个表数据:候选人信息+候选人和委员会的联系信息
ccl = pd.merge(ccl,candidates)
# 提取出所需要的列
ccl = pd.DataFrame(ccl, columns=[ '申报人识别号','候选人识别', '候选人名字','政党隶属关系'])ccl#%%# 将候选人与委员会关系表ccl和个人捐赠数据表itcont合并,通过 CMTE_ID
c_itcont =  pd.merge(ccl,itcont)
# 提取需要的数据列
c_itcont = pd.DataFrame(c_itcont, columns=[ '候选人名字','贡献者', '州','雇主','职业','交易金额', '交易日期','政党隶属关系'])c_itcont#%%#空值处理,统一填充 NULL
c_itcont['州'].fillna('NULL',inplace=True)
c_itcont['雇主'].fillna('NULL',inplace=True)
c_itcont['职业'].fillna('NULL',inplace=True)# 对日期TRANSACTION_DT[交易日期]列进行处理
c_itcont['交易日期'] = c_itcont['交易日期'] .astype(str)
# 将日期格式改为年月日  7242020
c_itcont['交易日期'] = [i[3:7]+i[0]+i[1:3] for i in c_itcont['交易日期'] ]c_itcont#%%# 计算每个党派的所获得的捐款总额,然后排序,取前十位
party_groupings_total_donation=c_itcont.groupby("政党隶属关系").sum().sort_values("交易金额",ascending=False)party_groupings_total_donation#%%# 导入matplotlib中的pyplot
import matplotlib.pyplot as plt
# 为了使matplotlib图形能够内联显示
%matplotlib inline#中文转码
plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus']=False#%%# 每个党派的所获得的捐款总额可视化
party_groupings_total_donation=pd.DataFrame(party_groupings_total_donation, columns=['交易金额'])
party_groupings_total_donation.plot(kind='bar')#%%# 计算每个总统候选人所获得的捐款总额,然后排序presidential_candidates_total_donation=c_itcont.groupby("候选人名字").sum().sort_values("交易金额",ascending=False)presidential_candidates_total_donation#%%# 统计各州对拜登的捐款总数
presidential_candidates_total_donation=presidential_candidates_total_donation.head(8)# 饼图可视化每个总统候选人所获得的捐款总额,取前8个
presidential_candidates_total_donation.plot.pie(figsize=(10, 10),autopct='%0.2f%%',subplots=True)#%%# 查看不同职业的人捐款的总额,然后排序
profession_total_donation=c_itcont.groupby('职业').sum().sort_values("交易金额",ascending=False)profession_total_donation#%%# 统计不同职业的人捐款的总额
profession_total_donation=profession_total_donation.head(25)# 不同职业的人捐款的总额,取前25个
profession_total_donation.plot(kind='bar')#%%# 查看每个职业捐款人的数量
profession_number=c_itcont['职业'].value_counts().head(10)profession_number#%%# 饼图可视化每个职业捐款人的数量,取前10个
profession_number.plot.pie(figsize=(10, 10),autopct='%0.2f%%',subplots=True)#%%# 每个州获捐款的总额,然后排序,取前10位
state_total_donation=c_itcont.groupby('州').sum().sort_values("交易金额",ascending=False)state_total_donation#%%state_total_donation=state_total_donation.head(10)# 可视化每个州获捐款的总额,取前10位
profession_total_donation.plot(kind='bar')#%%# 查看每个州捐款人的数量
person_number=c_itcont['州'].value_counts()person_number#%%person_number=person_number.head(15)# 饼图可视化每个州捐款人的数量,取前10个
person_number.plot.pie(figsize=(10, 10),autopct='%0.2f%%',subplots=True)

三、转载说明

  1. 本文内容借鉴于阿里云天池实验室【Python入门系列】《用Pandas揭秘美国选民的总统喜好》一文的示例教程(https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12281978.0.0.7d351c277qXzrt&postId=137714),文章完成时间2021.3.18。
  2. 若要转载本文,请在转载文章末尾附上本文链接:https://editor.csdn.net/md?not_checkout=1&articleId=114926353

阿里云天池实验室【Python入门系列】用Pandas揭秘美国选民的总统喜好相关推荐

  1. 【Python入门系列】一个简单的数据分析问题——用Pandas揭秘美国选民的总统喜好

    阿里天池训练营学习笔记 学习链接~AI训练营Python 本文将展示一个实际操作,利用Pandas对美国大选的一些数据进行处理,题目的详细内容请点击此处~[Python入门系列]用Pandas揭秘美国 ...

  2. 阿里天池用Pandas揭秘美国选民的总统喜好附加题

    = =我也不知道有没有杯子,大家权当热闹看看吧. 第一个附加题是按州总捐款热力地图(前面的大家可以直接在天池看,这是个教程类的入门,前面的说实话没啥好看的,新手就好好看看) import seabor ...

  3. 阿里云AI训练营-数据分析入门:利用Pandas分析美国总统选举

    1.1 前言 本次赛事由开源学习组织Datawhale主办,主要带领学习者利用Python进行数据分析以及数据可视化,包含数据集的处理.数据探索与清晰.数据分析.数据可视化四部分,利用pandas.m ...

  4. 阿里云天池实验室训练自己的数据

    本文章的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,滥用技术产生的风险与本人无关. 本文章是自己学习的一些记录. 开始 前几天做实验训练使用google的服务器时间上 ...

  5. 本地没有环境跑深度学习模型? 阿里云天池实验室它不香吗

    一.前言 前几天做深度学习模型训练使用 Google 的 colab 总是掉,搞得很烦.然后那天我队友 "叶伏天" 和我说有一个类似于 Google colab 的平台,可以训练, ...

  6. 阿里云 天池学习python(上)

    文章目录 阿里云 天池 Python入门(上) 简介 变量.运算符与数据类型 1. 注释 2. 运算符 3. 变量和赋值 4. 数据类型与转换 5. print() 函数 位运算 1. 原码.反码和补 ...

  7. 阿里云天池 零基础入门NLP - 新闻文本分类 2种做法,F1=0.87

    problem 1.赛题理解 数据集: 在NLP_data_list_0715.csv中,有三个链接. 分别可以下载训练集,测试集A,测试样例. f1_score介绍: F1分数(F1-score)是 ...

  8. 阿里云天池实验室 import torchvision import cv2 报错问题

    !pip install torchvision==0.8.2 --user !pip install opencv-contrib-python==3.4.2.17

  9. 阿里云天池 Python训练营Task4: Python数据分析:从0完成一个数据分析实战 学习笔记

    本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5 ...

  10. 阿里云天池 学习赛汇总(教学赛,零基础入门,长期赛)

    [教学赛]数据分析达人赛1:用户情感可视化分析 [教学赛]数据分析达人赛2:产品关联分析 [教学赛]数据分析达人赛3:汽车产品聚类分析 零基础入门语音识别-食物声音识别 零基础入门数据挖掘-心跳信号分 ...

最新文章

  1. 周礼栋:现在是计算机系统和网络研究“最好的时代”
  2. js返回顶部和始终保持底部
  3. Spring MVC –使用@ResponseBody轻松实现基于REST的JSON服务
  4. 秒杀场景_Sentinel在秒杀场景的应用_05
  5. Mybatis源码分析之(四)mapper访问数据库的底层原理(代理方法中具体访问数据库的细节)
  6. pytorch根据特征图训练LSTM Stacked AutoEncoder
  7. 掌握SpringAOP
  8. java jpms_JDK9的新特性:JPMS模块化
  9. java 静态内部类 内部类_Java中内部类和静态内部类的区别
  10. MVC中页面的传值方式总结
  11. 步进电机基础(7.2)-步进电机的选择方法-位置定位精度、转速方面、转速变化率和依据使用环境来选择
  12. 关于微信卡券网页跳转链接能力的下线
  13. 编写自己的newman reporter
  14. MAC地址IP地址 端口
  15. Codeforces Round #548 (Div. 2) C. Edgy Trees(dfs || 并查集)
  16. 物联网云平台都有哪些分类
  17. 第一期:[开眼界] Android P预览版都有哪些设计新鲜事
  18. spring boot 自定义@EnableXXX注解
  19. (转)Race condition解决
  20. bootstrap dialog自行控制窗口的关闭

热门文章

  1. 布朗运动、伊藤引理、BS公式(后篇)
  2. 【机器学习】逻辑回归算法
  3. comsol 计算机配置,[转]我需要一台什么样的电脑运行我的COMSOL Multiphysics - 仿真模拟 - 小木虫 - 学术 科研 互动社区...
  4. 韩立刚计算机网络——第三章:数据链路层
  5. maven环境变量配置?
  6. oracle库怎么样查询gp数据库,GP数据库分布键查询
  7. 基于STM32F103C8T6的74HC595驱动8位数码管模块学习
  8. android自动点击开红包,自动点击连点器
  9. 傲梅分区助手克隆Linux硬盘,傲梅分区助手如何复制磁盘?分区助手克隆磁盘的具体教程...
  10. 拉格朗日插值公式与mathematica程序实现