Titanic获救预测数据集预处理

本文详细介绍了对Titanic数据集的预处理工作,包括特征处理如Pclass、Sex、SibSp和Parch等,以及数据清洗,为深度学习模型提供准备。通过分析票类、性别、登船港口、票价、年龄和姓名中的头衔等信息,对数据进行填充和转换,以提高模型预测获救情况的准确性。
摘要由CSDN通过智能技术生成

引言

Hexo博客:Yanbin’s blog

我的博客Titanic获救预测中对dataset的预处理感觉不是很完善,看了Kaggle上的一些Kernels,重新进行预处理(for 深度学习)…

特征处理

%matplotlib inline
import pandas as pd
import numpy as np
import re
train = pd.read_csv(r'E:\Mirror\GitHub\Predict-survival-on-the-Titanic\data\train.csv')
test = pd.read_csv(r'E:\Mirror\GitHub\Predict-survival-on-the-Titanic\data\test.csv')
full_data = [train, test]
train.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId    891 non-null int64
Survived       891 non-null int64
Pclass         891 non-null int64
Name           891 non-null object
Sex            891 non-null object
Age            714 non-null float64
SibSp          891 non-null int64
Parch          891 non-null int64
Ticket         891 non-null object
Fare           891 non-null float64
Cabin          204 non-null object
Embarked       889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.6+ KB

1. Pclass

票类:经济地位的象征

序号 票类
1 头等舱
2 中等舱
3 末等舱
# One-hot编码
# train
train['P1'] = np.array(train['Pclass'] == 1).astype(np.int32)
train['P2'] = np.array(train['Pclass'] == 2).astype(np.int32)
train['P3'] = np.array(train['Pclass'] == 3).astype(np.int32)
# test
test['P1'] = np.array(test['Pclass'] == 1).astype(np.int32)
test['P2'] = np.array(test['Pclass'] == 2).astype(np.int32)
test['P3'] = np.array(test['Pclass'] == 3).astype(np.int32)
print(train.head(1))
   PassengerId  Survived  Pclass                     Name   Sex   Age  SibSp  \
0            1         0       3  Braund, Mr. Owen Harris  male  22.0      1   

   Parch     Ticket  Fare Cabin Embarked  P1  P2  P3  
0      0  A/5 21171  7.25   NaN        S   0   0   1  

2. Sex

性别:男or女

Sex label
male 1
female 0
# 把male/female转换成1/0
train['Sex'] = [1 if i == 'male' else 0 for i in train.Sex]
test['Sex'] = [1 if i == 'male' else 0 for i in test.Sex]
print(train.head(1))
   PassengerId  Survived  Pclass                     Name  Sex   Age  SibSp  \
0            1         0       3  Braund, Mr. Owen Harris    1  22.0      1   

   Parch     Ticket  Fare Cabin Embarked  P1  P2  P3  
0      0  A/5 21171  7.25   NaN        S   0   0   1  

3. SibSp and Parch

  • SibSp

the number of siblings/spouse:兄弟姐妹/配偶人数

  • Parch

the number of children/parents:子女/父母人数

# 'FamilySize':家庭成员人数
for dataset in full_data:
    dataset['FamilySize'] = dataset['SibSp'] + dataset[
Titanic 数据集是一个经典的机器学习数据集,包含了 Titanic 号船上的乘客信息,包括是否幸存、姓名、性别、年龄、船票等级、票价、船舱号、登船港口等。下面是对 Titanic 数据集进行 Pandas 预处理的步骤: 1. 读取数据:使用 `pandas.read_csv()` 函数读取 Titanic 数据集文件。 ```python import pandas as pd titanic_df = pd.read_csv('titanic.csv') ``` 2. 数据清洗:删除不必要的列和缺失值。 ```python # 删除不必要的列 titanic_df.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1, inplace=True) # 删除缺失值 titanic_df.dropna(inplace=True) ``` 3. 数据转换:将分类变量转换为数值变量。 ```python # 将性别变量转换为数值变量 titanic_df['Sex'] = titanic_df['Sex'].replace({'male': 0, 'female': 1}) # 将登船港口变量转换为数值变量 titanic_df['Embarked'] = titanic_df['Embarked'].replace({'C': 0, 'Q': 1, 'S': 2}) ``` 4. 数据分组:将数据集按照船票等级分组。 ```python grouped = titanic_df.groupby('Pclass') ``` 5. 数据聚合:对分组后的数据进行求和、计数、平均值等统计操作。 ```python # 求每个船票等级的平均年龄 grouped['Age'].mean() ``` 6. 数据合并:将多个数据集按照指定的列进行合并。 ```python # 合并两个数据集 merged_df = pd.merge(titanic_df, other_df, on='PassengerId') ``` 7. 数据重塑:将数据集进行透视,将行列数据进行重塑。 ```python # 将数据集按照性别和船票等级进行透视 pivot_df = pd.pivot_table(titanic_df, values='Survived', index='Sex', columns='Pclass') ``` 这些步骤可以根据具体的分析需求进行灵活调整,帮助我们进行数据清洗、转换、分析和可视化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值