Python数据分析实战,,美国总统大选数据可视化分析[基于pandas]

目录

前言

一、任务详情

二、数据集来源

三、实现过程

四、运行代码


前言

在学习Python数据分析的过程中,是离不开实战的。
今天跟大家带来数据分析可视化经典项目,美国总统大选数据可视化分析,希望对正在学习或者从事数据分析的朋友有帮助。


一、任务详情

  • 使用numpy数组完成统计分析的过程对特朗普和克林顿每个月的民意调查数据进行统计分析。
  • 主要步骤为:首先读取指定列的数据;然后,处理表示日期的文本数据,转换为形如“yyyy-mm”的字符串,提取选票日期;最后,统计每个月的投票数据。

     本案例使用扩展库pandas提供的函数和相关方法实现美国总统大选数据可视化分析。

二、数据集来源

数据集包含了从2015年11月到2016年11月美国总统大选的民意调查选票数据。该数据集由27列不同类型的数据组成,保存为一个CSV文件。

此数据集来源于kaggle网站。

Python数据分析实战,,美国总统大选数据可视化分析[基于pandas]_第1张图片

本案例的数据文件中可以用于每个月民意调查统计的数据有3列。其中enddate属性表示统计选票数据的结束日期;rawpoll_clinton和rawpoll_trump属性分别表示克林顿和特朗普在这一天获得的选票数。因此,本案例的任务是从enddate属性中提取年份和月份,然后将rawpoll_clinton和rawpoll_trump属性的取值以月份为单位进行统计。

三、实现过程

import datetime
import pandas as pd 
import matplotlib.pyplot as plt
 df_data = pd.read_csv('/home/aistudio/data/data76670/presidential_polls.csv')  # 加载数据
## step 1 标准化数据
df_data['enddate']=pd.to_datetime(df_data['enddate'])
df_data["enddate"]=df_data["enddate"].dt.to_period("M")
## step 2 数据可视化
fig,axes = plt.subplots(nrows=2, ncols=2,figsize=(15,10))
grouped_rawdata = df_data.groupby(df_data["enddate"])['rawpoll_clinton','rawpoll_trump'].sum()# 原始数据趋势展示
grouped_adjdata = df_data.groupby(df_data["enddate"])['adjpoll_clinton','adjpoll_trump'].sum()# 调整后数据显示
grouped_rawdata.plot(ax=axes[0,0])
grouped_adjdata.plot(ax=axes[0,1])
grouped_rawdata.plot(kind='bar',ax=axes[1, 0])
grouped_adjdata.plot(kind='bar',ax=axes[1, 1])
plt.show()

 代码8~9行使用扩展库pandas提供的to_datetime()函数可以将格式不统一的日期字符串转换为Series对象,其中Series对象的值是形如“yyyy-mm-dd”格式的时间日期型标准化数据,然后使用to_period("M")方法将时刻向量df_data["enddate"].dt转换成形如“yyyy-mm”的时期数据。

四、运行代码

运行以上代码可视化结果展示:

Python数据分析实战,,美国总统大选数据可视化分析[基于pandas]_第2张图片

从图2可以看出,基于原始数据的选票统计信息中,克林顿(Clinton)获得的选票数量与川普(Trump)旗鼓相当,有些时间段克林顿获得的选票数量比川普还略胜一筹。然而,在调整后的选票数量对比中发现,克林顿的选票优势逐渐下降,有些时间段比川普获得的选票数量稍逊一筹。这也许就是部分民众对川普2016年当选美国总统颇有微词的可能原因之一吧。

显然,由于扩展库pandas提供了大量用于数据清洗和数据分析的函数和对象方法,使得数据分析工作快捷而有效。对比发现,数值计算工具numpy更擅长科学计算应用,而基于扩展库numpy的数据分析工具pandas更擅长简洁而有效的专业化数据分析工作


你可能感兴趣的:(Python实战,python,pandas,数据分析)