附件 passenger.csv 文件中为某沉船邮轮乘客的信息数据,请完成以下要求: (1) 简单数据处理:读取表头,查看列名,去除列名中的左右空格;将“性别”一列全部转换为 首字母大写,并打印前五行数据。 (2) 重复值处理:查看是否存在重复值并将重复值打印出;删除重复值,将索引值重置,打印 dataframe。 (3) 缺失值处理:在(2)的基础上,查看哪些乘客缺失性别信息,通过乘客姓名填补缺失的性 别信息并打印这些乘客更新后的完整记录(提示:根据姓名中的 Miss、Mrs 和 Mr 判断); 查看哪些乘客缺失票价信息,填补缺失的票价信息并打印这些乘客更新后的完整记录(提 示:按不同船舱的票价均值填补)
时间: 2023-06-12 17:08:15 浏览: 352
航空旅客满意度数据集 CSV【500010034】
5星 · 资源好评率100%
以下是代码实现及注释:
```python
import pandas as pd
# 1. 简单数据处理
# 读取 CSV 文件
df = pd.read_csv("passenger.csv")
# 查看列名,去除列名中的左右空格
df.columns = df.columns.str.strip()
# 将“性别”一列全部转换为首字母大写,并打印前五行数据
df["Sex"] = df["Sex"].str.capitalize() # 首字母大写
print(df.head())
# 2. 重复值处理
# 查看是否存在重复值并将重复值打印出
duplicated = df[df.duplicated()]
print(duplicated)
# 删除重复值,将索引值重置,打印 dataframe
df.drop_duplicates(inplace=True)
df.reset_index(drop=True, inplace=True)
print(df)
# 3. 缺失值处理
# 查看哪些乘客缺失性别信息
null_sex = df[df["Sex"].isnull()]
print(null_sex)
# 通过乘客姓名填补缺失的性别信息并打印这些乘客更新后的完整记录
for i in null_sex.index:
name = df.loc[i, "Name"]
if "Miss." in name:
df.loc[i, "Sex"] = "Female"
elif "Mrs." in name:
df.loc[i, "Sex"] = "Female"
elif "Mr." in name:
df.loc[i, "Sex"] = "Male"
print(df.loc[null_sex.index])
# 查看哪些乘客缺失票价信息
null_fare = df[df["Fare"].isnull()]
print(null_fare)
# 填补缺失的票价信息并打印这些乘客更新后的完整记录
mean_fare = df.groupby("Pclass")["Fare"].mean() # 按不同船舱的票价均值填补
for i in null_fare.index:
pclass = df.loc[i, "Pclass"]
df.loc[i, "Fare"] = mean_fare[pclass]
print(df.loc[null_fare.index])
```
阅读全文