數(shù)據(jù)分析小技巧第七集:快速清洗、定位最關(guān)鍵特征

三步加星標(biāo)
你好,我是 zhenguo
我正在按照下面施工計劃往前推進,標(biāo)記小紅旗部分已經(jīng)講完,你可以從這里:施工專題已完成 60 篇 匯總?找到過往推送文章

今天晚上使用最經(jīng)典的泰坦尼克數(shù)據(jù)集,和你一起探討,如何快速清洗數(shù)據(jù),如何快速找出影響y的特征列表。
在文末我會提供數(shù)據(jù)集和這個notebook的下載
首先導(dǎo)入包:
import?numpy?as?np?
import?pandas?as?pd?
import?seaborn?as?sns
import?matplotlib.pyplot?as?plt
導(dǎo)入數(shù)據(jù)
df?=?pd.read_csv('./kaggle-data/titanic/train.csv')
找到所有列的None值
df.isnull().sum()
PassengerId??????0
Survived?????????0
Pclass???????????0
Name?????????????0
Sex??????????????0
Age????????????177
SibSp????????????0
Parch????????????0
Ticket???????????0
Fare?????????????0
Cabin??????????687
Embarked?????????2
dtype:?int64
Age列較多,使用平均值填充
df['Age']?=?df['Age'].transform(lambda?val:?val.fillna(val.mean()))
sex列映射male為0,female為1
df['Sex']?=?df['Sex'].map({'male':?0,?'female':?1})
df?=?df.fillna(0)
接下來就是最關(guān)鍵的,使用corr方法,找出各個變量間的相關(guān)系數(shù),并使用heatmap繪制相關(guān)性:
plt.figure(figsize=(8,6),?dpi=150)
sns.heatmap(data=df.corr(),?cmap='coolwarm',?annot=True)

找出與survived列最相關(guān)的幾個特征:
np.abs(df.corr()['Survived']).sort_values().tail(6)
去掉相關(guān)不大的列,得到如下影響survived最大的特征 DataFrame:
X?=?df.drop(['Survived',?'Cabin',?'Name',?'Embarked',?'Ticket'],?axis=1)

想要本文數(shù)據(jù)集和這個notebook的,微信我備注:泰坦尼克
評論
圖片
表情
