从零开始 Pandas 实战第一弹:泰坦尼克号数据分析全记录(附完整代码 + GitHub 打卡仓库)

作者:brian
GitHub 学习打卡仓库:https://github.com/codeInbpm/ML-Learning-Journey-2025

大家好,我是 brian,正在进行 2025 年从 0 到 1 完整 AI 全栈学习计划
今天正式打卡第 1 天:Pandas 实战入门,使用经典的泰坦尼克号数据集,一步步带你从环境搭建到数据探索,全部代码已实时推送到 GitHub!

项目背景

为什么从 Pandas 开始?
因为在真实的机器学习、深度学习、大模型项目中,80% 的时间花在数据处理上,Pandas 是 Python 数据分析的绝对王者!
今天我们用最经典的 Titanic 数据集(891 条乘客记录),完成一个完整的 EDA(探索性数据分析)起步流程。

数据集下载地址(已放入仓库):

https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv

一、环境搭建(3 分钟搞定)

# 创建独立环境(强烈推荐)
conda create -n ml2025 python=3.11 -y
conda activate ml2025

# 安装核心库
pip install pandas numpy matplotlib seaborn jupyter

# 启动 Jupyter
jupyter notebook

二、第一次见面:读取并查看数据

import pandas as pd

# 读取数据(关键:路径要对!)
df = pd.read_csv("data/titanic.csv")

print("数据形状:", df.shape) # (891, 12)
print(df.head())

输出:

数据形状: (891, 12)
 PassengerId Survived Pclass ... Fare Cabin Embarked
0 1 0 3 ... 7.2500 NaN S
1 2 1 1 ... 71.2833 C85 C

三、核心字段速览

字段名含义示例值
Survived是否生还0/1
Pclass舱位等级1/2/3
Sex性别male/female
Age年龄22
Fare票价7.25
Embarked登船港口S/C/Q

四、快速探索 10 问(代码即注释)

import pandas as pd
df = pd.read_csv("../data/titanic.csv")

print("1. 查看数据的前10行")
print(df.head(10))

print("查看数据的最后 10 行")
print(df.tail(10))

print("查看数据的前 10 行和后 7 行")
print(pd.concat([df.head(10), df.tail(7)], axis=0))

print("筛选所有女性乘客")
female = df[df['Sex'] == 'female']
print(female)

print("筛选头等舱且年龄 > 30 的乘客")
rich_old = df[(df['Pclass'] == 1) & (df['Age'] > 30)]
print(rich_old[['Name', 'Age', 'Fare']].head())

print("生还率最高的性别是?")
surival_high_sex = df.groupby('Sex')['Survived'].mean()
print(surival_high_sex)

print("新增 FamilySize 列(兄弟姐妹 + 父母子女 + 自己)")
df['FamilySize'] = df['SibSp'] + df['Parch']
print(df[['Name', 'FamilySize', 'SibSp', 'Parch']].head())


print("用 apply 自定义函数:票价等级")
def fare_level(fare):
    if fare <= 10 :return 'Cheap'
    elif fare <= 30: return 'Medium'
    elif fare <= 40: return 'Hard'
    else:return 'Expensive'

df['Fare_Level'] = df['Fare'].apply(fare_level)
print(df['Fare_Level'].value_counts())

print("找出最贵的10张票是谁买的?")
print(df.nlargest(10, 'Fare')[['Name', 'Fare', 'Pclass', 'Cabin']])

五、可视化预告(明天 第 2 天重点)

import seaborn as sns
import matplotlib.pyplot as plt

# 性别生还对比图(明天详细讲解)
sns.barplot(data=df, x='Sex', y='Survived')
plt.title('Survival Rate by Gender')
plt.show()

学习总结(第 1 天打卡成果)

完成内容状态
环境搭建 & 虚拟环境Done
成功读取 titanic.csvDone
掌握 head/info/groupby/concat/nlargestDone
初步数据探索分析Done
GitHub 实时提交打卡Done

GitHub 仓库实时更新

所有代码、数据、notebook 已全部推送到:
https://github.com/codeInbpm/ML-Learning-Journey-2025

项目结构(持续更新中):

01_pandas_basics/
├── day01_pandas_exercises.ipynb
├── data/titanic.csv
└── README.md(每日心得 + 截图)

下期预告:第 2 天

  • 布尔索引高级玩法
  • 缺失值填充策略
  • 分组聚合 + 透视表神技
  • 10 张图完整 EDA 报告

喜欢记得 点赞 + 收藏 + 一键三连
我们一起打卡,一起从 0 到 1 成为 AI 全栈工程师!

打卡第 1 天完成!明天见!
作者:brian
2025年11月19日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wáng bēn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值