导入
数据集与探索性数据分析
学习如何读取数据集并进行探索性数据分析。
1import pandas as pd; import numpy as np 2import matplotlib.pyplot as plt 3import seaborn as sns 4sns.set_style('whitegrid') # just optional! 5 6train = pd.read_csv('train_titanic_Xy.csv') 7# Always good to see how the data look like, head() is useful! 8print(train.head(2))
1print(train.info()) # try ==> train.info(verbose=False)
1#round((train.isnull().sum())/(train.isnull().count())*100,1) 2pct_missing = round((train.isnull().sum())/(train.isnull().count())*100,1) 3print(pct_missing.sort_values(ascending=False).head())
1# heatmap using seaborn, you can set the figure size if you want! 2plt.figure(figsize = (14,7)) 3sns.heatmap(data = train.isnull());
1plt.figure(figsize = (14,7)) 2sns.heatmap(data=train.isnull(), yticklabels=False, cbar=False, cmap='viridis' );
1plt.figure(figsize = (14,7)) 2sns.countplot(x='Survived', data=train);# try different palette, such as 'coolwarm' or anyother!
1plt.figure(figsize = (14,7)) 2sns.countplot(x='Survived', hue='Sex',data=train, palette='coolwarm'); # palette is another useful parameter!
1# Let's check the number of classes again to re-confirm! 2print(train['Pclass'].unique())
1plt.figure(figsize = (14,7)) 2sns.countplot(x='Survived', hue='Pclass',data=train); 3plt.legend(loc=1);
1# hue is useful here! 2plt.figure(figsize = (14,7)) 3sns.countplot(x='Embarked',data=train, hue='Survived');#hue='Pclass') 4plt.legend(loc=1);
1print("Survival rate with respect to the port of embarkation:") 2print("\tS: {} %".format(train[(train.Embarked == 'S') & (train.Survived==1) 3 ]['Survived'].count()/len(train[(train.Embarked == 'S')])*100)) 4print("\tC: {} %".format(train[(train.Embarked == 'C') & (train.Survived==1) 5 ]['Survived'].count()/len(train[(train.Embarked == 'C')])*100)) 6print("\tQ: {} %".format(train[(train.Embarked == 'Q') & (train.Survived==1) 7 ]['Survived'].count()/len(train[(train.Embarked == 'Q')])*100))
1plt.figure(figsize = (14,7)) 2sns.countplot(x='Embarked',data=train, hue='Pclass') 3plt.legend(loc=1);
1# Parch -- no. of parents / children aboard the Titanic 2plt.figure(figsize = (14,7)) 3sns.countplot(x='Parch',data=train, hue='Survived') 4plt.legend(loc=1);
1plt.figure(figsize = (14,7)) 2sns.distplot(train['Age'].dropna(),kde=False,color='green',bins=30); # try with dropna(), what do you see? 3#train['Age'].hist(bins=30,color='green',alpha=0.5) # using pandas data visualizations