python代码实现泰坦尼克号数据清理
时间: 2023-10-26 07:20:43 浏览: 55
以下是一个Python代码示例,用于清理泰坦尼克号数据集。该示例使用了Pandas库来加载和清理数据。
```python
import pandas as pd
# 加载数据集
df = pd.read_csv('titanic.csv')
# 删除无用的列
df = df.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1)
# 处理缺失值
df['Age'].fillna(df['Age'].median(), inplace=True)
df['Embarked'].fillna(df['Embarked'].mode()[0], inplace=True)
# 转换文本数据为数值数据
df['Sex'] = df['Sex'].map({'male': 0, 'female': 1})
embarked_map = {'S': 0, 'C': 1, 'Q': 2}
df['Embarked'] = df['Embarked'].map(embarked_map)
# 将数据集保存到文件中
df.to_csv('cleaned_titanic.csv', index=False)
```
该代码首先加载了泰坦尼克号的数据集,并删除了一些无用的列。然后,缺失值被处理,例如,年龄用中位数填充,Embarked用众数填充。最后,文本数据(例如性别和Embarked)被转换为数值,并将清理后的数据保存到文件中。
相关问题
Python 代码实现泰坦尼克号数据清洗
以下是 Python 代码实现泰坦尼克号数据清洗的示例:
```python
import pandas as pd
# 读取数据
df = pd.read_csv('titanic.csv')
# 删除无用列
df.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1, inplace=True)
# 处理缺失值
df['Age'].fillna(df['Age'].median(), inplace=True)
df['Embarked'].fillna(df['Embarked'].mode()[0], inplace=True)
# 将字符串类型转换为数字类型
df['Sex'] = df['Sex'].map({'female': 0, 'male': 1}).astype(int)
df['Embarked'] = df['Embarked'].map({'S': 0, 'C': 1, 'Q': 2}).astype(int)
# 将年龄分组
df['AgeGroup'] = pd.cut(df['Age'], bins=[0, 12, 18, 60, 100], labels=[0, 1, 2, 3])
# 删除原来的年龄列
df.drop(['Age'], axis=1, inplace=True)
# 保存清洗后的数据
df.to_csv('titanic_cleaned.csv', index=False)
```
上述代码首先读取泰坦尼克号数据集,然后删除无用的列(PassengerId、Name、Ticket、Cabin)。接着处理缺失值,对于年龄缺失的数据,使用中位数填充;对于Embarked缺失的数据,使用众数填充。然后将性别和Embarked转换为数字类型,方便后续建模。接着将年龄分组,将年龄划分为儿童、青少年、成年人和老年人四个年龄段,并删除原来的年龄列。最后将清洗后的数据保存到文件中。
Python代码实现泰坦尼克号数据清洗
以下是Python代码实现泰坦尼克号数据清洗的示例:
```python
import pandas as pd
# 读取数据文件
titanic = pd.read_csv('titanic.csv')
# 删除无用列
titanic = titanic.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1)
# 处理缺失值
titanic['Age'] = titanic['Age'].fillna(titanic['Age'].median())
titanic['Embarked'] = titanic['Embarked'].fillna(titanic['Embarked'].mode()[0])
# 将分类变量转换为数字变量
titanic['Sex'] = titanic['Sex'].map({'female': 0, 'male': 1}).astype(int)
embarked_mapping = {'S': 0, 'C': 1, 'Q': 2}
titanic['Embarked'] = titanic['Embarked'].map(embarked_mapping).astype(int)
# 查看数据清洗后的结果
print(titanic.head())
```
代码的执行结果为:
```
Survived Pclass Sex Age SibSp Parch Fare Embarked
0 0 3 1 22.0 1 0 7.2500 0
1 1 1 0 38.0 1 0 71.2833 1
2 1 3 0 26.0 0 0 7.9250 0
3 1 1 0 35.0 1 0 53.1000 0
4 0 3 1 35.0 0 0 8.0500 0
```