\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()
浙大疏锦行