日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Titanic第二章:第一节数据清洗及特征处理

發布時間:2024/1/8 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Titanic第二章:第一节数据清洗及特征处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2.1 缺失值觀察與處理

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

#讀取文件train

df = pd.read_csv('train.csv')

df.info()

2.1.1 任務一:缺失值觀察

df.isnull()

df.isnull().sum()

df[['Age','Cabin', 'Embarked']]

2.1.2 任務二:對缺失值進行處理

df1 = df.fillna({'Age': 0})

df1.info()

df1.isnull().sum()

df.loc[df['Age'].isnull(), 'Age'] = 0
df['Age'].isnull().sum()

2.2 重復值觀察與處理 2.2.1 任務一:請查看數據中的重復值

df[df.duplicated()]

a = pd.DataFrame({'brand': ['Yum Yum', 'Yum Yum', 'indomie', 'indomie', 'indomie'],
? ? ? ? ? ? ? ? ?'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
? ? ? ? ? ? ? ? ?'rating': [4, 4, 3.5, 15, 5]})

2.2.2 任務二:對重復值進行處理

a.duplicated()

a.drop_duplicates()

2.2.3 任務三:將前面清洗的數據保存為csv格式

df.to_csv('train_clean.csv')

2.3 特征觀察與處理 2.3.1 任務一:對年齡進行分箱(離散化)處理 (1) 分箱操作是什么? (2) 將連續變量Age平均分箱成5個年齡段,并分別用類別變量12345表示 (3) 將連續變量Age劃分為[0,5) [5,15) [15,30) [30,50) [50,80)五個年齡段,并分別用類別變量12345表示 (4) 將連續變量Age按10% 30% 50% 70% 90%五個年齡段,并用分類變量12345表示 (5) 將上面的獲得的數據分別進行保存,保存為csv格式

df['Age bins'] = pd.cut(df['Age'], 5, labels = list('12345'))
#cut()分組函數
df['Age bins']

plt.hist(df['Age'])

80/5

df['Age bins'] = pd.cut(df['Age'], [0, 5, 15, 30, 50, 80], right = False, labels = list('12345'))
df['Age bins']

df.head()

df['Age bins'] = pd.qcut(df['Age'], [0, 0.1, 0.3, 0.5, 0.7, 0.9], duplicates='drop', labels=list('1234'))
df['Age bins']

df.head()

plt.hist(df['Age'])

df.to_csv('train_bin.csv')

df.Sex.unique()

df['Sex'].unique()

df.Cabin.unique()

df.Embarked.unique()

df['Sex'].replace(['male', 'female'], [1, 2], inplace = True)
#將性別的文本標簽替換為數字標簽
df['Sex'].unique()

from sklearn.preprocessing import LabelEncoder
#從sklearn庫導入LabelEncoder模塊

df['Cabin'] = LabelEncoder().fit_transform(df['Cabin'])
#LabelEncoder().fit_transform()此函數可以將文本標簽轉換為數值標簽

df['Cabin'].unique()

df['Embarked'] = LabelEncoder().fit_transform(df['Embarked'])

df['Embarked'].unique()

x = pd.get_dummies(df['Age'], prefix = 'Age')
#將文本標簽轉為one_hot編碼

df = pd.concat([df, x], axis=1)

for column in ['Cabin', 'Embarked']:
? ? x = pd.get_dummies(df[column], prefix = column)
? ? df = pd.concat([df, x], axis = 1)

2.3.3 任務三:從純文本Name特征里提取出Titles的特征(所謂的Titles就是Mr,Miss,Mrs等)

df['Title'] = df.Name.str.extract('([A-Za-z]+)\.')
#用正則表達式提取title,Mr.Mrs, Miss等,具體語法不會,好好學一下;

df

總結

以上是生活随笔為你收集整理的Titanic第二章:第一节数据清洗及特征处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。