有一个titanic.csv,首先读入 titanic.csv 文件, 存在 tit数据框对象。然后显示tit的头3条数据。先计算age列中位数,然后直接修改tit对象将该中位数填充入age列的缺失值中。embarked列是旅客登船的港口简写,统计表中有哪几个港口,保存在 port列表中, 保存后要删除列表中的 np.nan 值。Pclass列是客舱等级,alive列有两个值,yes和no对应存活与未存活。计算按客舱等级pclass分组,每类客舱的平均生还率。统计结果存在 rate 这个Series变量中。然后利用上面得到的rate变量绘制柱形图,要求标题为:211543217 陈文杰。最后按who列来分组统计各类人数,并做对比饼图。
时间: 2024-03-19 16:43:18 浏览: 125
好的,我会逐步回答您的问题。首先,读入 titanic.csv 文件,存储在 tit 数据框对象中,并显示 tit 的头 3 条数据。代码如下:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读入 titanic.csv 文件,存储在 tit 数据框对象中
tit = pd.read_csv('titanic.csv')
# 显示 tit 的头 3 条数据
print(tit.head(3))
```
接下来,计算 age 列的中位数,并将该中位数填充入 age 列的缺失值中。代码如下:
```python
# 计算 age 列的中位数
age_median = tit['age'].median()
# 将 age 列的缺失值填充为中位数
tit['age'].fillna(age_median, inplace=True)
```
然后,统计表中有哪几个港口,保存在 port 列表中,并删除列表中的 np.nan 值。代码如下:
```python
# 统计 embanked 列的唯一值
port = tit['embarked'].unique()
# 删除 port 列表中的 np.nan 值
port = port[~pd.isnull(port)]
```
接下来,按客舱等级 pclass 分组,计算每类客舱的平均生还率。代码如下:
```python
# 按客舱等级 pclass 分组,计算每类客舱的平均生还率
rate = tit.groupby('pclass')['survived'].mean()
```
然后,利用上面得到的 rate 变量绘制柱形图,要求标题为:211543217 陈文杰。代码如下:
```python
# 利用 rate 变量绘制柱形图
rate.plot(kind='bar')
plt.title('211543217 陈文杰')
plt.show()
```
最后,按 who 列来分组统计各类人数,并做对比饼图。代码如下:
```python
# 按 who 列分组,统计各类人数
who_count = tit.groupby('who')['who'].count()
# 绘制对比饼图
who_count.plot(kind='pie', autopct='%1.1f%%')
plt.title('211543217 陈文杰')
plt.show()
```
完成以上步骤后,您应该已经得到了正确的答案和图表。
阅读全文