Python 代码实现泰坦尼克号数据清洗
时间: 2023-11-05 11:02:12 浏览: 141
以下是 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转换为数字类型,方便后续建模。接着将年龄分组,将年龄划分为儿童、青少年、成年人和老年人四个年龄段,并删除原来的年龄列。最后将清洗后的数据保存到文件中。
阅读全文