尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Data-Science-For-Beginners 实战作业解析:利用 EDA 回答纽约出租车冬季与夏季小费差异问题
Data-Science-For-Beginners 实战作业解析利用 EDA 回答纽约出租车冬季与夏季小费差异问题【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners本指南以 15-analyzing 课时作业为骨架系统讲解数据科学生命周期分析Analyzing阶段的核心任务——探索性数据分析EDA。你将学会在 assignment.ipynb 提供的纽约黄色出租车交易数据集上使用 Pandas 的describe()、sample()、query()与可视化手段回答冬季还是夏季乘客给司机的小费更多并掌握判断数据能否支撑客户问题的完整方法。作业背景从捕获到分析的业务问题本作业是上一课 14-Introduction 作业的延续。上一课团队处于数据科学生命周期的**捕获Capturing阶段负责评估数据能否回答客户问题本作业则进入分析Analyzing**阶段承担对数据集的探索性数据分析EDA职责。贯穿两课的核心业务问题是纽约市黄色出租车乘客在冬季给司机的小费比夏季更多吗团队被提供了一份包含200 笔出租车交易来自 2019 年 1 月与 7 月的笔记本与数据集。这一设计刻意用1 月代表冬季、7 月代表夏季两个极端月份制造了可直接对比的季节变量。正如 15-analyzing 课程 README 所述分析阶段要确认数据能够回答既定问题而 EDA 正是定义数据内部特征与关系的技法集合可为后续建模做准备。数据集全景18 列、200 行的出租车交易样本作业指定使用 assignment.ipynb 与仓库中的 data/taxi.csv。数据来自纽约市出租车与豪华轿车委员会TLC的黄色出租车行程记录公开数据集。对仓库内实际文件核对后发现data/taxi.csv包含18 个数据列数据记录共199 行其中 2019-01 有 100 条、2019-07 有 99 条与作业描述的约 200 笔交易一致。笔记本加载数据的方式如下import pandas as pd path ../../data/taxi.csv # 将 csv 文件加载为 DataFrame df pd.read_csv(path) # 打印 DataFrame print(df)从列名与样例值可以看出数据覆盖了行程的时间、距离、位置、费用与支付方式等维度具体如下列名类型/样例值含义推断VendorID1.0 / 2.0供应商编号TLC 授权供应商标识tpep_pickup_datetime2019-07-15 16:27:53上车时间戳tpep_dropoff_datetime2019-07-15 16:44:21下车时间戳passenger_count1.0 ~ 6.0乘客人数trip_distance0.90 ~ 4.79行程里程英里RatecodeID1.0费率代码1 通常为标准费率store_and_fwd_flagN是否存储转发记录Y/NPULocationID186 / 141上车地点编号DOLocationID233 / 161下车地点编号payment_type1.0 / 2.0支付方式编码fare_amount4.5 ~ 19.5基本车费美元extra0.0 / 1.0 / 3.0附加费如高峰时段费mta_tax0.5MTA 税tip_amount0.00 ~ 5.70小费金额美元即本次分析的目标变量tolls_amount0.0过路费improvement_surcharge0.3改善附加费total_amount6.96 ~ 28.50总金额congestion_surcharge0.0 / 2.5拥堵附加费核心分析变量是tip_amount小费金额季节由tpep_pickup_datetime中的月份决定。值得注意的是从样例数据看congestion_surcharge在 7 月记录中为 2.5、在 1 月记录中为 0.0——这类按时间段征收的附加费本身就是影响乘客最终支付意愿的潜在因素。EDA 方法回顾本课传授的五种探索技法15-analyzing 课程 README 围绕如何知道数据能支撑最终结果这个问题展开回顾了数据科学家获取数据时常问的三个问题我有足够的数据来解决这个问题吗这些数据对这个问题而言质量可接受吗如果我通过数据发现了额外信息是否应该考虑改变或重新定义目标EDA 正是回答这些问题的过程。课程给出了五种可落地的技法且每种都在 notebook.ipynb 中有真实代码示例。数据画像与描述性统计describe()数据画像Data Profiling通过描述性统计汇总数据集整体信息画像回答有什么描述性统计回答有多少。Pandas 的describe()函数对数值列输出count、max、min、mean、标准差与四分位数# 对邮件数据集使用 describe print(email_df.describe())输出示例节选自notebook.ipynb的真实运行结果the to ect ... count 406.000000 406.000000 406.000000 ... mean 7.022167 6.519704 4.948276 ... std 10.945522 9.801907 9.293820 ... min 0.000000 0.000000 1.000000 ... 25% 1.000000 1.000000 1.000000 ... 50% 3.000000 3.000000 2.000000 ... 75% 9.000000 7.750000 4.000000 ... max 99.000000 88.000000 79.000000 ...在出租车数据上对tip_amount、fare_amount、trip_distance等列执行df.describe()可以立刻发现count 是否等于总行数缺失值信号、tip_amount的最小值是否为 0现金支付通常无小费、均值与中位数是否存在明显偏斜。采样sample()在大数据集上逐一查看不现实采样能让你用较少的数据理解整体并结合概率与统计做一般性结论。采样的数据越多泛化越精确虽然没有固定规则。Pandas 通过sample(n)指定随机抽取行数# 采样 10 封邮件 print(email_df.sample(10))在出租车数据中df.sample(10)可快速目检各列的实际取值形态例如发现tip_amount中大量为 0 的记录是否集中在payment_type2推测为现金支付的记录。查询query()与采样的随机不同查询让你主动聚焦数据的特定部分。Pandas 的query()通过类 SQL 的字符串表达式筛选行# 返回 to 出现次数多于 the 的行 print(email_df.query(the to))该示例在notebook.ipynb中返回了 169 行共 406 封邮件中满足条件者。在出租车数据上可写出df.query(payment_type 1)或df.query(tip_amount 0)等条件精确分离有刷卡小费与无小费子集进行对比。可视化探索课程强调不必等到数据彻底清洗与分析完毕才开始可视化。探索阶段的可视化能帮助识别模式、关系与问题也是与不接触数据管理的干系人沟通的手段。若想系统学习常用可视化方法可参考仓库的 3-Data-Visualization 章节该章节覆盖数量、分布、比例、关系等主题并配有完整的 notebook 与 R 语言版本。缺失值与不一致识别isna()/isnull()所有上述技法都能侧面暴露缺失或不一致值而 Pandas 直接提供isna()与isnull()检查缺失值。课程强调探索缺失值的关键不只是发现更是探究它们为何以那种方式出现——这决定了后续应采取何种处理动作具体清理方案可参考 08-data-preparation 的数据准备笔记本。实战用作业数据回答三个问题作业要求在笔记本中自行开展 EDA可自行添加单元格并回答三个问题。下面给出每个问题的分析思路与可直接套用的代码骨架。问题一数据中还有哪些因素可能影响小费金额围绕tip_amount做相关性拆解重点检查几类候选变量# 1) 行程距离与车费长距离/高车费是否对应高小费 df.groupby(payment_type)[[fare_amount, tip_amount]].mean() # 2) 时间因素小时、星期几、高峰时段是否影响小费 df[hour] pd.to_datetime(df[tpep_pickup_datetime]).dt.hour df.groupby(hour)[tip_amount].mean() # 3) 乘客人数多人同行是否倾向更高小费 df.groupby(passenger_count)[tip_amount].mean() # 4) 支付方式payment_type 是否为小费记录的根本决定因素 df.groupby(payment_type)[tip_amount].agg([count, mean, sum])可以从数据推断的要点payment_type极可能是最强的结构性因素——样例中payment_type2的行tip_amount恒为 0.00这与现金支付无法在记录中留下小费金额的事实一致具体编码含义需对照 TLC 数据字典确认作业中已给出数据字典与用户指南的参考链接。此外congestion_surcharge、extra高峰附加费等费用列可能反映时段特征从而与季节/时间因素纠缠需在分析时留意混淆。问题二哪些列很可能不是回答客户问题所必需的客户问题只关心季节 × 小费因此可按是否与季节或小费直接相关来筛选# 观察哪些列存在大量常量值或与目标无关 df.nunique()store_and_fwd_flag样例中几乎全部为常量N对季节-小费关系无区分度VendorID、RatecodeID在样例中取值单一2.0/1.0若不准备做供应商或费率对比可暂不关注mta_tax恒为 0.5、improvement_surcharge恒为 0.3属于固定附加费不随季节或小费行为变化PULocationID/DOLocationID若不做区域维度分析仅回答季节问题时可不作为核心列但它们可能是哪些区域乘客小费更高这类后续问题的入口。删除列应使用df.drop(columns[...])且删除前建议用df.nunique()与df.describe()先确认各列的取值多样性避免误删有价值信息。问题三数据是否显示出季节性小费行为的证据这是最核心的业务问题。分析路径如下# 1) 提取月份列 df[month] pd.to_datetime(df[tpep_pickup_datetime]).dt.month # 2) 按月份1 月冬季7 月夏季对比小费均值 df.groupby(month)[tip_amount].agg([count, mean, median, sum]) # 3) 剔除无小费记录后再次对比排除 payment_type 干扰 card df[df[payment_type] 1] card.groupby(month)[tip_amount].mean() # 4) 计算小费占车费比例消除金额差异影响 card[tip_rate] card[tip_amount] / card[fare_amount] card.groupby(month)[tip_rate].mean()回答时的证据边界仓库数据只有 199 条记录、且仅有 1 月和 7 月两个月份样本量极小。即使groupby结果显示出均值差异也应谨慎表述为在本样本中观察到某种趋势而非得出统计显著的季节性结论。规范的 EDA 输出应包含各月份小费分布的describe()汇总、可视化对比箱线图/直方图可参考 3-Data-Visualization 章节技法、以及数据量是否足以支撑结论的评估——这正是课程强调的评估数据够不够环节。从数据看样例中 1 月与 7 月的tip_amount均值差异确实存在但需在作业报告中明确样本规模限制。评估标准什么是卓越的作业作业末尾给出了三档评估框架原文为标题行无具体细则文字可作为自查清单档次表现特征卓越Exemplary三类问题均有数据支撑的回答给出了多个潜在影响变量及其分析证据明确列出冗余列并说明理由对季节差异给出带可视化与统计描述的结论同时坦诚说明样本量局限合格Adequate使用describe()、sample()、query()中至少一种方法完成基础探索三个问题均给出合理但论证不够深入的回答需要改进Needs Improvement仅加载数据而未展开分析或回答停留在猜测层面、缺少代码与输出佐证小结从作业到方法论的沉淀完成本作业后你应能将分析Analyzing阶段的方法论内化先画像describe()评估数据量与质量 → 采样sample()快速感知 → 查询query()聚焦子集 → 可视化发现模式 →isna()/isnull()排查不一致最终形成数据能否回答客户问题以及还缺什么数据的结论。这种流程不仅适用于本仓库的出租车数据集也适用于 data 目录 下其它示例数据如emails.csv、birds.csv是数据科学实战中可复用的标准起手式。【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

环保数据监测平台架构设计与实战:从采集到可视化全链路解析

环保数据监测平台架构设计与实战:从采集到可视化全链路解析

开头: 大数据这几个字,这几年被喊得有点烂大街了。但我一直觉得,真正能让大数据落地出价值的场景,恰恰是环保监测这种“脏活累活”特别多的领域。我前后参与过好几个环保科技类的数据监测项目,涉及大气、水质、噪声、…

📅 2026/9/14 17:38:13
基于SpringBoot+Vue的在线考试系统设计与实现全解析

基于SpringBoot+Vue的在线考试系统设计与实现全解析

这两年帮人改项目、写代码,收到最多的毕设需求就是在线考试系统。十个做Java Web方向的同学,六七个最后都落在SpringBootVue这套组合上。原因不复杂,前端Vue负责页面渲染和交互,页面做得好看,后端SpringBoot只管业务逻…

📅 2026/9/14 17:33:13
从Figma到代码与动画:AI Skills如何重塑前端协作新范式

从Figma到代码与动画:AI Skills如何重塑前端协作新范式

做前端这几年,我最怕听到的一句话就是“照着 Figma 还原一下就行”。听起来一句话,干起来却是一场漫长的翻译:设计师在 Figma 里拖好的间距、字号、圆角、自动布局,到开发者手里要么变成一版“差不多就行”的还原,要么…

📅 2026/9/14 17:33:13
MORE NEWS

更多资讯

📰

Bokeh Crossfilter 交互式交叉筛选应用实战:基于 Pandas 的多维度数据联动绘图指南

Bokeh Crossfilter 交互式交叉筛选应用实战:基于 Pandas 的多维度数据联动绘图指南 【免费下载链接】bokeh Interactive Data Visualization in the browser, from Python 项目地址: https://gitcode.com/GitHub_Trending/bo/bokeh 导读 crossfilter 是 Bok…

📰

MongoDB 分片集群 $group 下推(Pushdown)深度解析:基于 Golden 测试的完整行为图谱

MongoDB 分片集群 $group 下推(Pushdown)深度解析:基于 Golden 测试的完整行为图谱 【免费下载链接】mongo The MongoDB Database 项目地址: https://gitcode.com/GitHub_Trending/mo/mongo 导读 本文以 MongoDB 仓库中 query_golden…

📰

中医四诊仪选购指南与实测经验分享

1. 四诊仪实测背景与核心价值 四诊仪作为中医现代化的重要工具,本质上是通过传感器和算法模拟传统"望闻问切"的诊断过程。我在过去三年测试过7个不同品牌的设备,发现市面产品良莠不齐——有的测量误差能达到传统诊断的40%,而优质设…

📰

Data-Science-For-Beginners 实战作业解析:利用 EDA 回答纽约出租车冬季与夏季小费差异问题

Data-Science-For-Beginners 实战作业解析:利用 EDA 回答纽约出租车冬季与夏季小费差异问题 【免费下载链接】Data-Science-For-Beginners 10 Weeks, 20 Lessons, Data Science for All! 项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Begi…

📰

环保数据监测平台架构设计与实战:从采集到可视化全链路解析

开头: 大数据这几个字,这几年被喊得有点烂大街了。但我一直觉得,真正能让大数据落地出价值的场景,恰恰是环保监测这种“脏活累活”特别多的领域。我前后参与过好几个环保科技类的数据监测项目,涉及大气、水质、噪声、…

📰

基于SpringBoot+Vue的在线考试系统设计与实现全解析

这两年帮人改项目、写代码,收到最多的毕设需求就是在线考试系统。十个做Java Web方向的同学,六七个最后都落在SpringBootVue这套组合上。原因不复杂,前端Vue负责页面渲染和交互,页面做得好看,后端SpringBoot只管业务逻…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬