当前位置: 首页 > ai >正文

DAY 4 缺失值的处理

\1. 打开数据

import pandas as pd
data = pd.read_csv(r'data.csv')
data

\2. 查看数据

# 打印数据集的基本信息(列名、非空值数量、数据类型等)
print("data.info() - 数据集的基本信息(列名、非空值数量、数据类型等):")
print(data.info())# 打印数据集的形状(行数和列数)
print("\ndata.shape - 数据集的形状(行数, 列数):")
print(data.shape)# 打印数据集的所有列名
print("\ndata.columns - 数据集的所有列名:")
print(data.columns)# 打印数值列的基本统计量(计数、均值、标准差等)
print("\ndata.describe() - 数值列的基本统计量(计数、均值、标准差等):")
print(data.describe())# 打印各列的数据类型
print("\ndata.dtypes - 各列的数据类型:")
print(data.dtypes)

\3. 查看空值

# 打印布尔矩阵(显示前5行示例)
print("data.isnull() - 布尔矩阵(True表示缺失值,False表示非缺失值):")
print(data.isnull().head())  # 仅展示前5行避免输出过长# 打印每列缺失值计数
print("\ndata.isnull().sum() - 每列缺失值数量统计:")
print(data.isnull().sum())

4.众数 中位数进行填补缺失值

#查看一列数据
data["Credit Score"]
#  众数填补
import pandas as pd
data = pd.read_csv('data.csv') #需要重新读取一遍数据
mode = data['Credit Score'].mode()
# mode() 会返回数据中出现频率最高的所有值,如果频次相同,会返回最多每个值。
mode = mode[0] # 取第一个值
data['Credit Score']=data['Credit Score'].fillna(mode)
# 检查下是否有缺失值
data['Credit Score'].isnull().sum()# 这个警告是 Pandas 库中的一个常见问题,称为“链式赋值”(chained assignment)警告。它通常发生在对 DataFrame 或 Series 进行操作时,尤其是在使用 inplace=True 参数时。Pandas 在未来版本中可能会改变这种行为,因此它提醒你避免潜在的问题。
# 问题原因
# 在你的代码中:
# Python
# 复制
# data['Credit Score'].fillna(mode, inplace=True)
# 这里 data['Credit Score'] 返回的是一个 Series,而对这个 Series 使用 inplace=True 可能会导致 Pandas 无法确定操作是否真正作用于原始 DataFrame,从而引发警告。
# 解决方法
# 为了避免这个警告,可以使用以下两种方法之一:
# 方法1:直接赋值
# 将 fillna 的结果直接赋值回原始 DataFrame 的对应列:
# Python
# 复制
# data['Credit Score'] = data['Credit Score'].fillna(mode)
# 这种方法简单且明确,不会引发链式赋值的警告。

\5. 利用循环补全所有列的空值

data = pd.read_csv(r'data.csv')
data.columns
#转换成列表
c = data.columns.tolist()for i in c:if data[i].dtype != 'object': # 找到为数值型的列data[i]=data[i].fillna(data[i].mean()) # 用均值填充
data.isnull().sum()data = pd.read_csv(r'data.csv')
data.columns
#转换成列表
c = data.columns.tolist()for i in c:if data[i].dtype != 'object': # 找到为数值型的列data[i]=data[i].fillna(data[i].mean()) # 用均值填充
data.isnull().sum()

浙大疏锦行

http://www.xdnf.cn/news/7119.html

相关文章:

  • yolov5和yolov8 配置torch离线文件GPU版本分享下载
  • 归一化函数 & 激活函数
  • 大模型deepseek如何助力数据安全管理
  • JavaScript原型链
  • 谢赛宁团队提出 BLIP3-o:融合自回归与扩散模型的统一多模态架构,开创CLIP特征驱动的图像理解与生成新范式
  • MLLM常见概念通俗解析(四)
  • 机器学习(11)——xgboost
  • C# 深入理解类(成员常量)
  • Spring Cloud Sentinel 快速入门与生产实践指南
  • 【U-boot 命令使用】
  • 【c库主要功能】
  • 智能工具管理系统|DW-S308系统组成
  • day 29
  • 【数据结构】2-2-2 顺序表的插入删除查找
  • 类魔方 :多变组合,灵活复用
  • 生命之树--树形dp
  • 采用DHCP动态分配IP地址,如果某主机开机后没有得到DHCP服务器的响应。则该主机获取的IP地址为?
  • 七、xlib窗口渲染
  • Git版本管理命令reset
  • <STC32G12K128入门第十七步>获取Ultralight C卡七字节数据
  • Markdown 简历生成器——ResumeCraft 开发历程分享
  • C语言标准I/O与文件操作
  • C++ for QWidget:自定义的信号和槽
  • QML学习03(Component、Loader)
  • OpenHarmony SIM卡信号值整体流程分析
  • 本地部署代码托管解决方案 Gitea 并实现外部访问
  • 缓冲区的用途 和 fork复制进程
  • 深度解析:AWS NLB 与 ALB 在 EKS 集群中的最佳选择
  • 内容中台智能推荐系统构建与演进
  • Python 装饰器详解