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