pandas常用資料預處理方法
阿新 • • 發佈:2019-02-14
資料樣式
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))
由於時間關係,這裡就不貼執行結果的圖了,這個資料集是
馬上消費金融風險預測
的資料