文末送书|用Pandas分析了75w多条数据,揭秘美国选民的总统喜好!

3、数据探索与清洗

进过数据处理部分,我们获得了可用的数据集,现在我们可以利用调用shape属性查看数据的规模,调用info函数查看数据信息,调用describe函数查看数据分布。

# 查看数据规模 多少行 多少列

c_itcont.shape

(756205, 8)

# 查看整体数据信息,包括每个字段的名称、非空数量、字段的数据类型

c_itcont.info()

<class ‘pandas.core.frame.DataFrame’>

Int64Index: 756205 entries, 0 to 756204

Data columns (total 8 columns):

CAND_NAME 756205 non-null object

NAME 756205 non-null object

STATE 756160 non-null object

EMPLOYER 737413 non-null object

OCCUPATION 741294 non-null object

TRANSACTION_AMT 756205 non-null int64

TRANSACTION_DT 756205 non-null int64

CAND_PTY_AFFILIATION 756205 non-null object

dtypes: int64(2), object(6)

memory usage: 51.9+ MB

通过上面的探索我们知道目前数据集的一些基本情况,目前数据总共有756205行,8列,总占用内存51.9+MB,STATEEMPLOYEROCCUPATION有缺失值,另外日期列目前为int64类型,需要进行转换为str类型。

#空值处理,统一填充 NOT PROVIDED

c_itcont[‘STATE’].fillna(‘NOT PROVIDED’,inplace=True)

c_itcont[‘EMPLOYER’].fillna(‘NOT PROVIDED’,inplace=True)

c_itcont[‘OCCUPATION’].fillna(‘NOT PROVIDED’,inplace=True)

# 对日期TRANSACTION_DT列进行处理

c_itcont[‘TRANSACTION_DT’] = c_itcont[‘TRANSACTION_DT’] .astype(str)

# 将日期格式改为年月日  7242020

c_itcont[‘TRANSACTION_DT’] = [i[3:7]+i[0]+i[1:3] for i in c_itcont[‘TRANSACTION_DT’] ]

# 再次查看数据信息

c_itcont.info()

<class ‘pandas.core.frame.DataFrame’>

Int64Index: 756205 entries, 0 to 756204

Data columns (total 8 columns):

CAND_NAME 756205 non-null object

NAME 756205 non-null object

STATE 756205 non-null object

EMPLOYER 756205 non-null object

OCCUPATION 756205 non-null object

TRANSACTION_AMT 756205 non-null int64

TRANSACTION_DT 756205 non-null object

CAND_PTY_AFFILIATION 756205 non-null object

dtypes: int64(1), object(7)

memory usage: 51.9+ MB

# 查看数据前3行

c_itcont.head(3)

|

| CAND_NAME | NAME | STATE | EMPLOYER | OCCUPATION | TRANSACTION_AMT | TRANSACTION_DT | CAND_PTY_AFFILIATION |

| — | — | — | — | — | — | — | — | — |

| 0 | MORGAN, JOSEPH DAVID | MARTIN, WILLIAM II | AZ | RETIRED | RETIRED | 100 | 2020724 | REP |

| 1 | MORGAN, JOSEPH DAVID | RODRIGUEZ, GERARDO | AZ | VA HOSPITAL | LAB TECH | 40 | 2020724 | REP |

| 2 | MORGAN, JOSEPH DAVID | RODRIGUEZ, GERARDO | AZ | VA HOSPITAL | LAB TECH | 40 | 2020731 | REP |

# 查看数据表中数据类型的列的数据分布情况

c_itcont.describe()

|

| TRANSACTION_AMT |

| — | — |

| count | 7.562050e+05 |

| mean | 1.504307e+02 |

| std | 2.320452e+03 |

| min | -5.600000e+03 |

| 25% | 2.000000e+01 |

| 50% | 3.500000e+01 |

| 75% | 1.000000e+02 |

| max | 1.500000e+06 |

# 查看单列的数据发布情况

c_itcont[‘CAND_NAME’].describe()

count 756205

unique 312

top BIDEN, JOSEPH R JR

freq 507816

Name: CAND_NAME, dtype: object

4、数据分析

# 计算每个党派的所获得的捐款总额,然后排序,取前十位

c_itcont.groupby(“CAND_PTY_AFFILIATION”).sum().sort_values(“TRANSACTION_AMT”,ascending=False).head(10)

|

| TRANSACTION_AMT |

| — | — |

| CAND_PTY_AFFILIATION |

|

| — | — |

| DEM | 75961730 |

| REP | 37170653 |

| IND | 328802 |

| LIB | 169202 |

| DFL | 76825 |

| GRE | 18607 |

| NON | 11256 |

| UNK | 10195 |

| CON | 4117 |

| BDY | 3250 |

# 计算每个总统候选人所获得的捐款总额,然后排序,取前十位

c_itcont.groupby(“CAND_NAME”).sum().sort_values(“TRANSACTION_AMT”,ascending=False).head(10)

|

| TRANSACTION_AMT |

| — | — |

| CAND_NAME |

|

| — | — |

| BIDEN, JOSEPH R JR | 68111142 |

| TRUMP, DONALD J. | 16594982 |

| SULLIVAN, DAN | 9912465 |

| JACOBS, CHRISTOPHER L. | 6939209 |

| BLOOMBERG, MICHAEL R. | 3451916 |

| MARKEY, EDWARD J. SEN. | 606832 |

| SHAHEEN, JEANNE | 505446 |

| KENNEDY, JOSEPH P III | 467738 |

| CORNYN, JOHN SEN | 345959 |

| FIGLESTHALER, WILLIAM MATTHEW MD | 258221 |

获得捐赠最多的党派有DEM(民主党)REP(共和党),分别对应BIDEN, JOSEPH R JR(拜登)TRUMP, DONALD J.(特朗普),从我们目前分析的2020.7.22-2020.8.20这一个月的数据来看,在选民的捐赠数据中拜登代表的民主党完胜特朗普代表的共和党,由于完整数据量过大,所以没有对所有数据进行汇总分析,因此也不能确定11月大选公布结果就一定是拜登当选

# 查看不同职业的人捐款的总额,然后排序,取前十位

c_itcont.groupby(‘OCCUPATION’).sum().sort_values(“TRANSACTION_AMT”,ascending=False).head(10)

|

| TRANSACTION_AMT |

| — | — |

| OCCUPATION |

|

| — | — |

| NOT EMPLOYED | 24436214 |

| RETIRED | 18669950 |

| NOT PROVIDED | 5089355 |

| ATTORNEY | 4443569 |

| FOUNDER | 3519109 |

| PHYSICIAN | 3295595 |

| CONSULTANT | 1647033 |

| LAWYER | 1565976 |

| PROFESSOR | 1481260 |

| EXECUTIVE | 1467865 |

# 查看每个职业捐款人的数量

c_itcont[‘OCCUPATION’].value_counts().head(10)

NOT EMPLOYED 224109

RETIRED 151834

ATTORNEY 19666

NOT PROVIDED 14912

PHYSICIAN 14033

CONSULTANT 8333

PROFESSOR 8022

TEACHER 8013

ENGINEER 7922

SALES 6435

Name: OCCUPATION, dtype: int64

从捐款人的职业这个角度分析,我们会发现NOT EMPLOYED(自由职业)的总捐赠额是最多,通过查看每个职业捐赠的人数来看,我们就会发现是因为NOT EMPLOYED(自由职业)人数多的原因,另外退休人员捐款人数也特别多,所以捐款总数对应的也多,其他比如像:律师、创始人、医生、顾问、教授、主管这些高薪人才虽然捐款总人数少,但是捐款总金额也占据了很大比例。

# 每个州获捐款的总额,然后排序,取前五位

c_itcont.groupby(‘STATE’).sum().sort_values(“TRANSACTION_AMT”,ascending=False).head(5)

|

| TRANSACTION_AMT |

| — | — |

| STATE |

|

| — | — |

| CA | 19999115 |

| NY | 11468537 |

| FL | 8128789 |

| TX | 8101871 |

| MA | 5187957 |

# 查看每个州捐款人的数量

c_itcont[‘STATE’].value_counts().head(5)

CA 127895

TX 54457

FL 54343

NY 49453

MA 29314

Name: STATE, dtype: int64

最后查看每个州的捐款总金额,我们会发现CA(加利福利亚)NY(纽约)FL(弗罗里达)这几个州的捐款是最多的,在捐款人数上也是在Top端,另一方面也凸显出这些州的经济水平发达。大家也可以通过数据查看下上面列举的高端职业在各州的分布情况,进行进一步的分析探索。

4、数据可视化

首先导入相关Python库

# 导入matplotlib中的pyplot

import matplotlib.pyplot as plt

# 为了使matplotlib图形能够内联显示

%matplotlib inline

# 导入词云库

from wordcloud import WordCloud,ImageColorGenerator

4.1 按州总捐款数和总捐款人数柱状图

# 各州总捐款数可视化

st_amt = c_itcont.groupby(‘STATE’).sum().sort_values(“TRANSACTION_AMT”,ascending=False)[:10]

st_amt=pd.DataFrame(st_amt, columns=[‘TRANSACTION_AMT’])

st_amt.plot(kind=‘bar’)

AxesSubplot:xlabel=‘STATE’

4.2 各州捐款总人数可视化

# 各州捐款总人数可视化,取前10个州的数据

st_amt = c_itcont.groupby(‘STATE’).size().sort_values(ascending=False).head(10)

st_amt.plot(kind=‘bar’)

AxesSubplot:xlabel=‘STATE’

4.3 热门候选人拜登在各州的获得的捐赠占比

# 从所有数据中取出支持拜登的数据

biden = c_itcont[c_itcont[‘CAND_NAME’]==‘BIDEN, JOSEPH R JR’]

# 统计各州对拜登的捐款总数

biden_state = biden.groupby(‘STATE’).sum().sort_values(“TRANSACTION_AMT”, ascending=False).head(10)

# 饼图可视化各州捐款数据占比

biden_state.plot.pie(figsize=(10, 10),autopct=‘%0.2f%%’,subplots=True)

array([<AxesSubplot:ylabel='TRANSACTION_AMT'>], dtype=object)

4.3 总捐最多的候选人捐赠者词云图

通过数据分析中获得捐赠总额前三的候选人统计中可以看出拜登在2020.7.22-2020.8.20这期间获得捐赠的总额是最多的,所以我们以拜登为原模型,制作词云图。

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
img

作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
[外链图片转存中…(img-jPMYvOQV-1711094114213)]

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值