import pandas as pd
from config import file
data = pd.read_csv(file, encoding='gbk')
num=data.isna().sum()
print(num)
部分列如下所示:
unnamed: 0 0
custid 0
trade_no 0
bank_card_no 0
low_volume_percent 2
middle_volume_percent 2
take_amount_in_later_12_month_highest 0
trans_amount_increase_rate_lately 3
trans_activity_month 2
trans_activity_day 2
transd_mcc 2
trans_days_interval_filter 8
trans_days_interval 2
regional_mobility 2
student_feature 2998
def data_columns(column):
'檢視某一列值的分布情況'
result = data[column]
print(result.describe())
def fill_median(column):
'用中位數填充'
data[column].fillna(data[column].median(), inplace=true)
def fill_mean(column):
'用均值填充'
data[column].fillna(data[column].mean(), inplace=true)
data_columns('trans_days_interval')
'''count 4752.000000
mean 21.751263
std 16.474916
min 4.000000
25% 12.000000
50% 17.000000
75% 27.000000
max 234.000000
name: trans_days_interval, dtype: float64
'''fill_median('trans_days_interval')
其中均值比中位數大的較多些,此時選擇用中位數填充。
data_columns('transd_mcc')
'''count 4752.000000
mean 17.502946
std 4.475616
min 2.000000
25% 15.000000
50% 17.000000
75% 20.000000
max 42.000000
name: transd_mcc, dtype: float64
'''fill_median('transd_mcc')
其中均值和中位數差不多大,分布比較均勻,選擇用均值填充缺失值
'''
count 4751.000000
mean 14.160674
std 694.180473
min 0.000000
25% 0.615000
50% 0.970000
75% 1.600000
max 47596.740000
name: trans_amount_increase_rate_lately, dtype: float64
'''其中最小值為0,最大值為 47596.74,裡面肯定有離群值,沒有及時找到離群值的填充方法
'''
count 4450
unique 207
top 2018-04-14
freq 423
name: latest_query_time, dtype: object
'''
缺失值處理
pandas使用nan not a number 表示浮點和非浮點陣列中的缺失資料,python內建的none值也會被當做na處理,pandas物件上的所有描述統計都排除了缺失資料。na處理方法 方法 說明dropna 根據各標籤的值是否存在缺失資料對軸標籤進行過濾,可通過閾值調節對缺失值的容忍度 ...
缺失值處理
之前寫過一篇文章缺失值視覺化處理 missingno 主要介紹了缺失值的檢視,今天聊一下,出現了缺失值後我們要做的後續工作,就是缺失值的處理。首先附上幾個 data資料集 data.isnull 缺失值判斷 是缺失值返回true,否則範圍false data.isnull sum 缺失值計算 返回每...
缺失值處理
資料清洗主要是刪除原始資料集中的無關資料 重複資料,平滑雜訊資料,去除與資料探勘主題無關的資料,處理缺失值 異常值等 缺失主要為完全隨機缺失,隨機缺失和非隨機缺失 資料的缺失是隨機的,資料的缺失不依賴於任何不完全變數或完全變數。資料的缺失不是完全隨機的,即該類資料的缺失依賴於其他完全變數。資料的缺失...