尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

DAY8 标签编码与连续变量处理

DAY8 标签编码与连续变量处理
📅 发布时间:2026/6/25 12:27:01

#DAY 8 标签编码与连续变量处理的作业
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data=pd.read_csv(r"C:\Python Study\Python60DaysChallenge-main\data.csv")
print(‘观察前五行的数据’)
print(data.head())
print(“\n对缺失值进行填补”)
continue_cols=data.select_dtypes(exclude=[‘object’]).columns.tolist()
discrete_cols=data.select_dtypes(include=[‘object’]).columns.tolist()

连续变量:用均值填充缺失值

data[continue_cols] = data[continue_cols].fillna(data[continue_cols].mean())

离散变量:用众数填充缺失值

for col in discrete_cols:
mode_val = data[col].mode()
# 防止众数为空的异常情况
if not mode_val.empty:
data[col] = data[col].fillna(mode_val[0])

调试断点2:确认缺失值全部填充完成

print(“\n=== 缺失值填充后 ===”)
print(“剩余缺失值数量:\n”, data.isnull().sum())

========== 3. 对离散变量进行 one-hot 编码 ==========

data_encoded = pd.get_dummies(data, columns=discrete_cols)

调试断点3:查看编码后的列变化

print(“\n=== 独热编码后 ===”)
print(f"编码后数据形状: {data_encoded.shape}")
print(“新增编码列:”, [col for col in data_encoded.columns if col not in data.columns])

========== 4. 独热编码后的变量转为 int 类型 ==========

筛选出所有独热编码生成的新列

encoded_cols = [col for col in data_encoded.columns if col not in data.columns]
data_encoded[encoded_cols] = data_encoded[encoded_cols].astype(int)

调试断点4:确认类型转换结果

print(“\n=== 类型转换后 ===”)
print(“编码列数据类型:\n”, data_encoded[encoded_cols].dtypes)
print(“处理后数据前5行:\n”, data_encoded.head())

#接下来是连续特征的处理

手动实现归一化

对Annual Income列做归一化,手动构建函数实现

自行学习下如何创建函数,这个很简单很常用

def manual_normalize(data):
“”"
此函数用于对输入的数据进行归一化处理
:param data: 输入的一维数据(如 Pandas 的 Series)
:return: 归一化后的数据
“”"
min_val = data.min()
max_val = data.max()
normalized_data = (data - min_val) / (max_val - min_val)
return normalized_data
for col_name in continue_cols:
# 调用自定义归一化函数覆盖原列
data_encoded[col_name] = manual_normalize(data_encoded[col_name])

打印归一化后的所有连续列

print(“\n归一化后的连续特征:”)
print(data_encoded[continue_cols])

========== 全局配置必须放在所有绘图之前 ==========

设置全局字体为支持中文的字体,解决中文显示为方块的问题

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

解决负号’-'显示为方块的问题

plt.rcParams[‘axes.unicode_minus’] = False

print(“\n===== 开始绘制单特征可视化 =====”)

1. 连续特征:箱线图 + 直方图(核密度)

for col in continue_cols:
# 箱线图:看分布、四分位数、异常值
plt.figure(figsize=(8, 5))
sns.boxplot(x=data[col])
plt.title(f’{col} 箱线图’)
plt.xlabel(col)
plt.show()

# 直方图+核密度:看数值分布形态 plt.figure(figsize=(8, 5)) sns.histplot(data[col], kde=True) plt.title(f'{col} 分布直方图') plt.xlabel(col) plt.ylabel('样本数量') plt.show()

2. 离散特征:计数柱状图(统计每个类别的样本量)

for col in discrete_cols:
plt.figure(figsize=(8, 5))
# 离散分类特征用countplot统计频次,才是正确的“离散特征直方图”
sns.countplot(x=data[col])
plt.title(f’{col} 类别数量分布’)
plt.xlabel(col)
plt.ylabel(‘样本数量’)
# 类别名称过长时可以旋转x轴标签,避免重叠
plt.xticks(rotation=30)
plt.show()

===================== 二、特征与标签的关系可视化 =====================

print(“\n===== 开始绘制特征与标签关系图 =====”)

1. 连续特征 vs 违约标签:分组箱线图

逻辑:按违约状态分组,对比不同群体的特征数值分布差异

for col in continue_cols:
plt.figure(figsize=(8, 5))
sns.boxplot(x=target, y=col, data=data)
plt.title(f’{col} 与信用违约的关系’)
plt.xlabel(‘是否信用违约’)
plt.ylabel(col)
plt.show()

2. 离散特征 vs 违约标签:分组计数图

逻辑:按特征类别分组,再拆分违约/未违约,看不同类别下的违约占比差异

for col in discrete_cols:
plt.figure(figsize=(10, 6))
sns.countplot(x=col, hue=target, data=data)
plt.title(f’{col} 与信用违约的关系’)
plt.xlabel(col)
plt.ylabel(‘样本数量’)
plt.xticks(rotation=30)
plt.legend(title=‘是否违约’)
plt.show()

相关新闻

  • Claude Code 实战:从概念到可交付结果
  • 李佳行政法口诀19句话|李佳行政法2026精讲pdf|李佳行政法每日一题
  • VirtualBox和VMware深度横评(2024企业级部署白皮书):CPU虚拟化损耗、GPU直通延迟、快照恢复速度全数据实测

最新新闻

  • 高维点集密度分析:Jensen不等式与凸性原理的应用
  • 2026 洗衣液十大名牌最新资讯汇总 主流品牌定位与家用场景指南
  • Go语言的sync.RWMutex读写锁升级与降级在并发访问模式变化中的限制
  • 震惊!小程序开发公司选错就亏大了,这3点你必须知道!
  • 配置wsl记录(坎坷版)
  • WorkBuddy自动化实战:手把手教你设置第一个定时任务

日新闻

  • Qwen2.5-Turbo百万上下文实战指南:百炼平台长文本处理全解析
  • 怎么监控对标账号更新,2026年作者监控工作流,5款深度对比
  • EdgeRemover:专业级Windows Edge浏览器管理工具,彻底解决顽固软件卸载难题

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号