资讯动态

Data Science For Beginners 实战:用探索性数据分析(EDA)回答纽约黄色出租车冬夏小费之谜

发布时间:2026/9/13 22:54:41 来源:尧图企业网站定制
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在本课的任务中你所在的团队正处在数据科学生命周期的分析Analyzing阶段需要用探索性数据分析Exploratory Data AnalysisEDA来回答客户的业务问题纽约市的黄色出租车乘客在冬天给司机的小费是否比夏天更多仓库提供了 2019 年 1 月和 7 月共 200 笔出租车交易数据data/taxi.csv以及配套的 任务 Notebook。读完本文你将掌握如何用 Pandas 完成一次完整的数据画像、采样、查询与分组对比分析并学会判断哪些特征真正影响小费、哪些列可以舍弃、以及如何基于证据评估季节性小费行为是否存在。一、任务背景从采集到分析的延续本任务是上一课 Assessing a Dataset 的延续。上一课属于生命周期中的捕获Capturing阶段团队负责获取数据、定义问题并评估这份数据能否支撑最终结论。而本课的任务切换到分析阶段责任从评估数据是否够用推进到对数据做深入的探索性分析。课程文档 The Data Science Lifecycle: Analyzing 明确指出分析阶段要确认数据能够回答提出的问题或解决某个特定问题同时也可以用于确认模型是否正确地回应这些问题。本课聚焦于 EDA——用来在数据内部定义特征与关系的技术集合为后续建模做准备。客户问题与交付物客户想知道纽约市的黄色出租车乘客在冬天1 月给司机的小费是否比夏天7 月更多你获得的交付物包括一个任务 Notebook其中已包含数据加载代码并预留了Use the cells below to do your own Exploratory Data Analysis在下方单元格做你自己的 EDA的空白单元一份数据集 data/taxi.csv包含 200 行、18 列采样自 2019 年 1 月与 7 月两个月份的纽约黄色出租车行程记录数据来源为纽约出租车与礼车委员会 Taxi Limousine Commission 的公开行程数据。原始数据文件采用 CSV 格式既可以用 Pandas 加载也可以用文本编辑器或 Excel 直接打开查看便于快速核对字段含义。二、先认识你的数据18 个字段的含义在进行任何分析之前首先要理解数据集的模式schema。对 data/taxi.csv 的表头做一次解析可以得到全部 18 列这也是任务 Notebook 中df打印输出的列集合列名含义对回答小费问题的作用VendorID提供数据的供应商编号1、2、4弱相关通常与分析无关tpep_pickup_datetime上车时间戳关键用于区分冬夏季节、星期、时段tpep_dropoff_datetime下车时间戳可用于计算行程时长passenger_count乘客人数可能影响小费实测相关系数 -0.15trip_distance行程英里数可能影响小费实测相关系数 0.43RatecodeID费率代码1标准费率等本样本 96% 为 1.0基本无区分度store_and_fwd_flag是否存储转发标志Y/N本样本全部为 N无信息量PULocationID/DOLocationID上下车地点编号可用于分析区域差异但需先回答主问题payment_type支付方式1信用卡2现金等关键混淆变量实测信用卡行程小费均值 2.82现金行程小费恒为 0fare_amount计价器基础车费美元关键小费通常与车费正相关实测相关系数 0.36extra额外费用高峰、夜间附加费弱相关mta_taxMTA 税本样本恒为 0.5常量无区分度tip_amount小费金额美元目标变量tolls_amount过路费弱相关大部分为 0improvement_surcharge改善附加费本样本恒为 0.3常量无区分度total_amount总金额与小费强相关但包含小费本身需谨慎使用congestion_surcharge拥堵附加费2.5 或 0可反映市中心时段特征任务文档建议参考数据字典data dictionary与用户指南user guide来进一步理解字段这两份资料对应纽约 TLC 官方发布的行程记录字段定义。在使用数据之前先建立这样的字段清单是 EDA 的第一步。三、本课核心技巧回顾四种 EDA 手段课程 README 围绕四个主题展开它们是完成本任务的方法论工具箱1. 数据画像Data Profiling与描述性统计数据画像通过描述性统计技术汇总数据集的一般整体信息回答我们有什么描述性统计回答我们有多少。课程配套 notebook.ipynb 用邮件分类数据集data/emails.csv演示了describe()的用法它会输出数值列的count、mean、std、min、四分位数与max。借助这些统计量可以评估数据量是否足够以及是否需要更多数据。2. 采样Sampling大数据集逐个检查非常耗时采样允许传入一个参数获得指定数量的随机样本。采样的样本越多对总体的推断越精确尽管没有固定的采样比例规则。sample(n)即可从 DataFrame 中随机抽取 n 行。3. 查询Querying与采样不同查询让你聚焦到数据中特定部分检验自己的假设。query(条件表达式)可以按行筛选例如课程 notebook 演示的email_df.query(the to)返回to 出现次数多于 the的邮件行。4. 可视化探索不必等到数据清洗和建模完成再做可视化。探索过程中的可视化能帮助发现模式、关系与数据问题也便于向不参与数据管理的利益相关者沟通。更系统的可视化方法可参考 3-Data-Visualization 章节数量图、分布图、占比图、关系图等。5. 发现不一致与缺失值Pandas 提供isna()/isnull()检查缺失值。更重要的是发现缺失值后要探索它们为什么会缺失这决定了后续如何处理可参考 数据准备课程 中的处理方法。四、实操第一步加载数据并做数据画像任务 assignment.ipynb 已给出加载代码直接沿用即可#Install the pandas library !pip install pandas import pandas as pd path ../../data/taxi.csv # 相对仓库根目录即 data/taxi.csv #Load the csv file into a dataframe df pd.read_csv(path) #Print the dataframe print(df)Notebook 中记录了df的打印输出[200 rows x 18 columns]首尾各显示若干行。这与我们对数据文件的实测一致——200 行交易记录恰好各 100 行来自 1 月与 7 月。接下来对目标变量做描述性统计print(df[tip_amount].describe())基于仓库数据的实测结果为count 200.000000 mean 2.013900 std 2.292065 min 0.000000 25% 0.000000 50% 1.650000 75% 2.712500 max 14.640000关键观察25% 分位数为 0意味着至少 25% 的行程没有小费均值2.01明显高于中位数1.65说明分布右偏存在少量高额小费拉高了均值。这提示后续分析小费是否给、给多少应该分开看。五、实操第二步按月拆解直接检验冬夏差异先把时间列转为真正的日期时间类型然后按月份分组对比df[tpep_pickup_datetime] pd.to_datetime(df[tpep_pickup_datetime]) df[month] df[tpep_pickup_datetime].dt.month print(df.groupby(month)[tip_amount].agg([count, mean, median, sum]))基于仓库数据的实测结果monthcountmeanmediansum1冬1001.94941.48194.947夏1002.07842.00207.84直观上看7 月的小费均值2.08 美元略高于 1 月1.95 美元中位数2.00 vs 1.48与总额207.84 vs 194.94也一致地指向夏天略高。若改用相对口径——小费占车费的比例df[tip_pct] df[tip_amount] / df[fare_amount].replace(0, pd.NA) print(df.groupby(month)[tip_pct].mean())实测结果为 1 月约 14.9%、7 月约 16.8%同样是夏季略高。但这里必须保持谨慎样本量只有 200两月差异约 0.13 美元是否显著还需要更多数据与统计检验来确认不能仅凭均值差异下结论。六、深入探究一哪些因素可能影响小费金额任务要求回答的第一个问题是数据中还有哪些因素可能影响小费金额结合本课学的查询、分组与相关性分析我们对仓库数据做了如下实测1. 支付方式是最强的干扰因素print(df.groupby(payment_type)[tip_amount].mean())payment_type 1信用卡小费均值约2.82 美元payment_type 2现金小费均值恒为 0。这是一个典型的数据说明现金行程的小费记录本身不会被系统捕获因此小费为 0并不等于乘客没给小费。任何只比较小费金额的结论都会受到两月信用卡/现金比例差异的干扰。2. 行程距离与车费实测fare_amount与小费相关系数约0.36trip_distance与小费相关系数约0.43——距离越长、车费越高小费通常越多。这也解释了为何要同时看小费占车费比例来消除基数效应。3. 乘客人数passenger_count与小费相关系数约-0.15单人乘车反而小费略高可能因为多人分摊场景下人均小费意愿不同。4. 星期与时段按星期几dayofweek分组实测周二、周三、周四的小费均值偏高约 2.2–2.4周日最低约 1.31按上车小时hour分组早晚高峰时段如 6–9 点均值较高。这类特征可用于进一步细分季节性之外的规律。5. 上下车地点PULocationID / DOLocationID区域编号可以用于分析市中心如曼哈顿与外围区域的小费差异属于可以在后续回合深入的方向。七、深入探究二哪些列大概率用不上任务要求回答的第二个问题哪些列很可能不需要基于对样本分布的实测可以给出有依据的判断store_and_fwd_flag200 行全部为N完全没有区分度直接剔除mta_tax恒为 0.5常量列不携带信息improvement_surcharge恒为 0.3同上RatecodeID192/200 为 1.0标准费率其余仅 7 条为 2.0、1 条为 5.0几乎无统计效力VendorID虽然有三种取值1、2、4但与客户问题无逻辑关联属于基础设施元数据tolls_amount大部分为 0对冬夏小费问题贡献有限。判断标准很明确常量列、无区分度列、与业务问题无关的元数据列都可以从建模特征中排除。这也正是 EDA 的价值——避免把不相关信息带入后续建模。八、深入探究三数据是否显示出季节性小费行为的证据这是任务的第三个问题也是核心结论。综合以上分析仓库数据给出的证据是存在轻微的方向性差异7 月的小费均值2.08 美元、中位数2.00 美元与总额207.84 美元都略高于 1 月1.95 / 1.48 / 194.94小费占车费比例也略高16.8% vs 14.9%但证据强度有限样本仅 200 条且小费为 0 的行程占比很高25% 分位数为 0分布右偏均值易受极端值影响存在明显混淆因素支付方式信用卡/现金对可记录小费的影响远大于月份差异必须先控制支付方式再比较月份才可能得到干净的结论。因此恰当的表达是当前数据呈现出夏季小费略高的初步迹象但尚不足以构成确认性证据需要扩充样本、控制支付方式等混淆变量后才能下结论。这正是 EDA 与完整统计推断之间的边界。九、检查缺失值与数据质量在得出任何结论前还应检查缺失值。实测对该数据集执行print(df.isna().sum())18 个原始列全部为 0 个缺失值。但这不代表数据完美正如上面看到的tip_amount 0的大量存在并非缺失而是未记录现金小费这一系统性质congestion_surcharge存在 0 与 2.5 两种取值说明部分行程发生在收取拥堵费的时段/区域。这些看似正常的值恰恰是需要结合业务背景解读的地方——理解数据为什么是这个样子是决定后续清洗与建模策略的前提。十、评分标准与完成度自查任务文档提供了评分量表Rúbrica分为三个等级杰出Exemplary合格Adequate需要改进Needs Improvement在 Notebook 中系统性地完成了 EDA正确加载数据、对目标变量做描述性统计、按月/支付方式等维度分组对比并基于证据回答全部三个问题完成了基本的数据探索回答了问题但缺少分组对比或证据链仅加载了数据没有展开分析或结论缺乏数据支撑提交前请对照自查三个问题的回答是否都有对应的代码输出作为证据是否区分了相关与因果是否明确说明了当前样本的局限十一、延伸阅读与下一步任务 Notebook4-Data-Science-Lifecycle/15-analyzing/assignment.ipynb其中已含数据加载示例与空白分析单元课程正文The Data Science Lifecycle: Analyzingdescribe / sample / query / isna 等技巧详解课程配套示例 Notebooknotebook.ipynb以 emails.csv 演示四种 EDA 手段上一课任务数据评估4-Data-Science-Lifecycle/14-Introduction/assignment.md缺失值处理2-Working-With-Data/08-data-preparation/notebook.ipynb可视化方法3-Data-Visualization。完成本任务后你便走通了业务问题 → 数据画像 → 分组对比 → 识别混淆变量 → 谨慎下结论的 EDA 全流程——这也是数据科学生命周期中分析阶段的核心能力可直接迁移到任何新的数据集上。【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价