1. 程式人生 > >pandas常用資料預處理方法

pandas常用資料預處理方法

資料樣式

這裡寫圖片描述

python程式碼

df = pd.read_csv('../dataset/ai_risk_train/train_auth_info.csv', low_memory=False)
# print(df)

'''檢視資料的基本資訊'''
print(df.info())

'''整個資料的整體的分佈'''
print(df.describe())

'''檢視資料集的空值,或者說是缺失值'''
print(df.isnull().sum())

'''檢視唯一值 '''
print(df['auth_time'].unique())


print(df.head(3))  # 前3行
print(df.tail(3)) # 後3行 print(df.loc[630]) # 提取索引值為630的那一行 預設0開始 print(df.loc[2]) # 取第三行的資料 print(df.iloc[2:5, :3]) # 取第二,三四行和前3列 print(df[(df['id_card'] <= '5****************9') & (df['phone'] == '135****3522')]) df = df.dropna(how='any') # 發現df中的空值會全部刪掉 df = df.fillna(value=0) # 用資料0來填充空值
df['name'] = [index for index in range(df.shape[0])] df['auth_time'] = df['auth_time'].fillna(df['name'].mode()) # 用資料集裡面的name眾數來填充auth_time的空值 df['name'] = ['aBcD' for index in range(df.shape[0])] # df['name'] = df['name'].map(str.upper).head(3) # 只對name屬性前三行進行大寫轉換 df['name'] = df['name'].map(str.__len__).head(3
) # 只對name屬性前三行計算字串長度 '''字串的快速對映轉換''' df['id'] = df['id'].map({'501951980776722440': '一等艙', '525890212484616200': '二等艙', '599309364691472392': '三等艙'}) '''轉換資料型別 int->float64''' df['name'] = [index for index in range(df.shape[0])] print(df.dtypes) df['name'] = df['name'].astype('float64') print(df.dtypes) '''更改列的名字''' df = df.rename(columns={'id': '是否獲救'}) print(df) '''資料的代替,替換''' df['name'] = ['aBcD' for index in range(df.shape[0])] df['name'] = df['name'].replace('aBcD', 'ABCD') print(df.head(3))

由於時間關係,這裡就不貼執行結果的圖了,這個資料集是馬上消費金融風險預測的資料

參考資料