2020年美国总统大选数据分析与模型预测

数据集取自:2020年🇺🇸🇺🇸美国大选数据集 - Heywhale.com

前言

对2020年美国总统大选数据的深入分析,提供各州和县层面的投票情况及选民行为的可视化展示。数据预处理阶段将涉及对异常值的处理,以确保分析的准确性。通过数据清洗、集成、转换将为后续分析整理合理的数据集。在数据分析阶段,本次实训关注候选人在各州的得票情况及各州的政党优势,同时对县级投票支持率和选举结果进行可视化。此外,人口特征分析将帮助我们理解不同性别、年龄及地域对投票的影响。模型建立阶段将应用KNN和朴素贝叶斯算法,对大选结果预测进行建模,以其发现潜在的影响因素并为未来的选举策略提供依据。

数据预处理

数据清洗

导入csv文件,后使用 data.isnull() 检查数据框中每个元素是否为缺失值,并返回一个布尔值数据框。接着,sum() 方法计算每一列缺失值的总数,输出缺失值的统计信息。然后填充缺失值并检查。

# # 加载数据
data = pd.read_csv('president_counties.csv')

# 查看前几行数据
print(data.head())

# 检查缺失值
print(data.isnull().sum())
# 处理缺失值
data['state_code'] = data['state_code'].fillna('DC')
# 再次检查
print(data.isnull().sum())

数据集中fips联邦信息代码这列在分析中用不到,选择删除,并查看删除后的数据 

# 使用drop方法移除fips列
data = data.drop(columns=['fips'])

# 查看移除后的数据
print(data.head())

 利用箱型图以经度为判断依据,判断并删除数据集中的异常数据,如图2-3所示。异常值处理后输出结果如图

 异常值数据在经度-160左右处,这里采取删除异常值的方式处理数据。

# 计算四分位数
Q1 = data['long'].quantile(0.25)
Q3 = data['long'].quantile(0.75)
IQR = Q3 - Q1
# 打印四分位数和IQR
print(f"Q1: {Q1}, Q3: {Q3}, IQR: {IQR}")
# 定义异常值的边界
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
# 打印异常值的边界
print(f"Lower Bound: {lower_bound}, Upper Bound: {upper_bound}")
# 找出异常值
outliers = data[(data['long'] < lower_bound) | (data['long'] > upper_bound)]
print("异常值:")
print(outliers[['id', 'state', 'county', 'long']])
# 如果没有异常值,打印提示信息
if outliers.empty:
    print("没有找到异常值。")
# 删除异常值获取完成预处理的数据cleaned_data
cleaned_data = data[(data['long'] >= lower_bound) & (data['long'] <= upper_bound)]

# 查看删除异常值后的数据
print("\n删除异常值后的数据:")
print(cleaned_data.head())

 数据集成

 检查cleaned_data中的重复行数量,然后删除这些重复行,再次检查并输出处理后的数据框中是否还有重复行。通过这种方式,可以确保数据的唯一性&

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值