我们将使用一个名为"Titanic"的数据集,该数据集包含了泰坦尼克号上乘客的信息,包括年龄、性别、船票等级、是否生还等。我们将对这个数据集进行数据分析和可视化,以了解泰坦尼克号乘客的生存情况。
步骤1:数据准备与读取
首先,我们需要下载"Titanic"数据集,并使用pandas库读取数据。
import pandas as pd
# 读取数据
url = 'https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv'
data = pd.read_csv(url)
# 查看前几行数据
print(data.head())
步骤2:数据探索与清洗
接下来,让我们进行数据探索,查看数据的基本信息,以及处理缺失值和不必要的列。
# 查看数据基本信息
print(data.info())
# 处理缺失值(假设用中位数填充)
data['Age'].fillna(data['Age'].median(), inplace=True)
data['Embarked'].fillna(data['Embarked'].mode()[0], inplace=True)
# 删除不必要的列
data.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1, inplace=True)
步骤3:数据分析
现在我们可以进行数据分析,例如统计幸存者和非幸存者的人数,并分析不同因素与生存率的关系。
# 统计幸存者和非幸存者的人数
survived_counts = data['Survived'].value_counts()
print(survived_counts)
# 分析性别与生存率的关系
survival_by_sex = data.groupby('Sex')['Survived'].mean()
print(survival_by_sex)
# 分析船票等级与生存率的关系
survival_by_pclass = data.groupby('Pclass')['Survived'].mean()
print(survival_by_pclass)
步骤4:数据可视化
最后,我们使用matplotlib和seaborn库绘制一些图表来直观地展示数据。
import matplotlib.pyplot as plt
import seaborn as sns
# 绘制生存情况饼图
plt.figure(figsize=(6, 6))
plt.pie(survived_counts, labels=['Not Survived', 'Survived'], autopct='%1.1f%%', colors=['skyblue', 'lightcoral'])
plt.title('Survival Distribution')
plt.show()
# 绘制性别与生存率柱状图
sns.barplot(x='Sex', y='Survived', data=data, palette='pastel')
plt.title('Survival Rate by Sex')
plt.show()
# 绘制船票等级与生存率柱状图
sns.barplot(x='Pclass', y='Survived', data=data, palette='muted')
plt.title('Survival Rate by Pclass')
plt.show()
通过对"Titanic"数据集的分析,我们可以得出一些结论:女性的生存率明显高于男性,头等舱乘客的生存率也较高。这些结论可能是由于在撤离时女性和头等舱乘客被优先照顾。