AI基础__天池pandas数据分析学习赛
- 赛事链接: 天池pandas学习赛
1. 数据准备
数据可以在赛事指南中按照文档描述进行下载,一共需要以下三个数据集.
数据的预处理,官方给了一个baseline.
2. 数据分析
根据数据准备阶段得到的数据.现在的数据结果如下.
![image-20210304204116315](https://i-blog.csdnimg.cn/blog_migrate/eb1f30c4f4e15f4e5e7ad5f36c1c2cfa.png)
其中,各个字段的意思如下:
- CAND_PTY_AFFILIATION 党派名称
2.1 党派分析
下面计算各个党派所获得的捐款总额:
c_itcont.groupby('CAND_PTY_AFFILIATION').sum()
可以得到如下的结果:
![image-20210304204627198](https://i-blog.csdnimg.cn/blog_migrate/7da73db691b080c38c7da510d039b090.png)
对其进行排序:
c_itcont.groupby('CAND_PTY_AFFILIATION').sum().sort_values('TRANSACTION_AMT',ascending=False)
![image-20210304204849611](https://i-blog.csdnimg.cn/blog_migrate/94d2d14d88c4821db040d09f4713e9e9.png)
2.2 候选人分析
c_itcont.groupby('CAND_NAME').sum()
所有候选人所获得的捐款信息如下:
![image-20210304205137718](https://i-blog.csdnimg.cn/blog_migrate/9dc0b16b6845ff0f81a264ea49763cc3.png)
再对其进行排序,取前10个总统候选人
c_itcont.groupby('CAND_NAME').sum().sort_values('TRANSACTION_AMT',ascending=False).head(10)
![image-20210304205331214](https://i-blog.csdnimg.cn/blog_migrate/8fae01c1c05de1c2a42e07bfaf58f85b.png)
可见,得到捐款最多的是拜登.其次是特朗普.
2.3 职业分析
c_itcont.groupby('EMPLOYER').sum().sort_values('TRANSACTION_AMT',ascending=False)
![image-20210304210359423](https://i-blog.csdnimg.cn/blog_migrate/fa67139acc59243777fd5042c73bb5eb.png)
可见,其实没有工作的人是捐的最多的.这个现象就非常有意思了.
2.4 按州统计
c_itcont.groupby('STATE').sum().sort_values('TRANSACTION_AMT',ascending=False)
![image-20210304210750836](https://i-blog.csdnimg.cn/blog_migrate/326e661118b22636c23833ed51a2cd0f.png)
可以发现CA即加州的捐款最多.
3. 数据可视化
3.1 按州统计
import matplotlib.pyplot as plt
%matplotlib inline
from wordcloud import WordCloud,ImageColorGenerator
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')
![image-20210304211621683](https://i-blog.csdnimg.cn/blog_migrate/119a086a88244808829802f8066bce39.png)
3.2 支持拜登的人员分布
# 从所有数据中取出支持拜登的数据
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)
![image-20210304211900552](https://i-blog.csdnimg.cn/blog_migrate/68db690c21e0154afb8006e6e387460e.png)
4. 词云
wc = WordCloud(# FFFAE3
background_color="white", # 设置背景为白色,默认为黑色
width=890, # 设置图片的宽度
height=600, # 设置图片的高度
mask=bg, # 画布
margin=10, # 设置图片的边缘
max_font_size=100, # 显示的最大的字体大小
random_state=20, # 为每个单词返回一个PIL颜色
).generate_from_text(data)
# 图片背景
bg_color = ImageColorGenerator(bg)
plt.imshow(wc.recolor(color_func=bg_color))
plt.axis("off")
wc.to_file("datasets/pandas_president/biden_wordcloud.png")
![image-20210305081937127](https://i-blog.csdnimg.cn/blog_migrate/dd3e62d0dcbea6d380d1ed238c15be23.png)