1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python数据分析实战 美国总统大选数据可视化分析[基于pandas]

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

时间:2024-03-06 13:27:36

相关推荐

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

目录

前言

一、任务详情

二、数据集来源

三、实现过程

四、运行代码

前言

在学习Python数据分析的过程中,是离不开实战的。

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

一、任务详情

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

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

二、数据集来源

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

此数据集来源于kaggle网站。

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

三、实现过程

import datetimeimport pandas as pd import matplotlib.pyplot as pltdf_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”的时期数据。

四、运行代码

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。