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

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()

浙大疏锦行

相关文章:

  • Spring ioc和Aop
  • 【ROS2】虚拟机使用fishros脚本一键安装humble
  • Codeforces 1017 Div4(ABCDEFG)
  • 翻译:20250518
  • 【Python数据处理系列】输入txt,读取特定字符转换成特定csv数据并输出
  • C# String 格式说明符
  • C++模板进阶使用技巧
  • NY337NY340美光固态颗粒NC010NC012
  • wsl2中Ubuntu22.04配置静态IP地址
  • 基于STM32F103与Marvell88W8686的WIFI无线监控视频传输系统研发(论文)
  • 1.5 MouseDown,MouseUp,LostMouseCapture的先后顺序
  • 三、高级攻击工具与框架
  • OpenHarmony SIM卡信号值整体流程分析
  • 【Vue篇】数据秘语:从watch源码看响应式宇宙的蝴蝶效应
  • 仿腾讯会议——退出房间
  • spark数据处理练习题详解【上】
  • STM32 OTA 中断向量表重定向
  • Node.js 框架
  • 数组-长度最小的子数组
  • USB接口介绍
  • 女巫的继承者们
  • 完善劳动关系协商协调机制,《共同保障劳动者合法权益工作指引》发布
  • 中央提级巡视后,昆明厅官郭子贞接受审查调查
  • 新版城市规划体检评估解读:把城市安全韧性摆在更加突出位置
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯今日执行死刑
  • 艺术稀缺性和价值坚守如何构筑品牌差异化壁垒?从“心邸”看CINDY CHAO的破局之道