实战:用 Pandas 完成探索性数据分析(EDA))
数据分析阶段Analyzing实战用 Pandas 完成探索性数据分析EDA【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners导读在数据科学生命周期中Analyzing分析阶段承担着承上启下的作用它验证采集Capture阶段获得的数据能否真正回答客户提出的问题、支撑最终业务结论并为后续建模铺平道路。本文以 Data-Science-For-Beginners 仓库中 第 15 课《The Data Science Lifecycle: Analyzing》 为骨架围绕探索性数据分析EDA这一核心主题完整讲解数据画像Data Profiling、描述性统计、抽样、查询、可视化探索与缺失值识别六大实操技法并结合仓库内真实 Notebook、数据集与源码示例进行纵深验证。读完本文你将能够使用 Python 与 Pandas 独立对陌生数据集开展系统化探查判断数据是否足以支撑决策并为下一步建模或数据清洗做好准备。EDA为什么分析阶段必须先认识数据数据科学生命周期通常包含多个阶段采集Capture、分析Analyzing、沟通Communication等。第 14 课 《The Data Science Lifecycle: Introduction》 讲解了生命周期的整体框架而分析阶段解决的核心问题是数据能否支撑预期结果回顾数据科学家在拿到数据时通常自问的三个问题见 第 15 课文档我有足够的数据来解决这个问题吗这些数据对于该问题的质量是否可接受如果从数据中发现额外信息我们是否应该考虑修改或重新定义目标探索性数据分析Exploratory Data AnalysisEDA正是认识数据的过程——它帮助我们回答上述问题同时识别出数据集中潜藏的挑战。EDA 本身包含一系列技术界定数据特征features、发现变量间关系、并为建模准备数据。它并不追求一次性得出最终结论而是强调快速、反复、多角度地观察数据从而为后续建模和数据准备阶段提供依据。数据画像与描述性统计评估够不够、好不好数据画像 vs 描述性统计判断是否有足够数据解决问题首先需要对数据集做整体扫描这一过程称为数据画像Data Profiling。它借助描述性统计手段汇总并收集数据集的一般性信息数据画像Data Profiling帮助我们理解有什么可用——包括字段清单、数据类型、取值范围等描述性统计Descriptive Statistics帮助我们理解有多少可用——包括样本量、均值、极值、离散程度等。二者互为补充画像回答数据长什么样统计回答数据有多少、分布如何。describe()一行代码生成关键统计量在 第 15 课配套 Notebook 中作者使用 Pandas 对邮件数据集执行了describe()import pandas as pd import glob # 加载数据集 path ../../data/emails.csv email_df pd.read_csv(path) # 对邮件数据集使用 describe print(email_df.describe())该函数仅针对数值列返回 8 项统计量统计量含义count非空值计数判断数据量是否充足mean均值衡量中心趋势std标准差衡量离散程度min/max最小值 / 最大值判断取值范围是否合理25%/50%/75%四分位数辅助判断分布形态在 emails.csv 数据集共 407 行含 1 个索引列 16 个单词计数列上describe()输出显示所有列count 406即无缺失以the列为例均值 7.02、标准差 10.95、最大 99 次说明不同邮件中该词出现频次差异极大右偏分布。这类信息可以帮助你立刻判断数据量是否足够、字段是否有缺失、分布是否异常。仓库根目录下的 examples/02_loading_data.py 也给出了相同思路的完整脚本先用data.shape查看行列数用data.info()查看列名与数据类型再用data.describe()获取统计摘要最后用isnull().sum()检查缺失值——这是任何 EDA 的标准化开场流程。抽样Sampling用样本快速理解全貌大型数据集的全面探索非常耗时通常交由计算机完成但在理解数据集里有什么、代表什么时抽样是一种高效手段。通过样本可以运用概率与统计知识对整体数据得出一般性结论。抽样规模没有硬性规则但必须记住样本越大概括越精确。Pandas 提供了sample()函数传入参数即可指定随机抽取的行数。Notebook 中演示了从 406 封邮件中随机抽取 10 封# 抽样 10 封邮件 print(email_df.sample(10))输出示例中可以看到Email No.列与 16 个单词计数列构成的数据行例如Email 151、Email 5147等。随机抽样让每次运行得到不同行适合在探索初期快速浏览数据形态、发现异常值或数据录入问题。查询Querying带着问题定向检索与抽样不同查询给予你控制权——它可以聚焦于你好奇的特定数据部分用来回答具体问题、验证假设。Pandas 的query()函数允许你通过类布尔表达式直接筛选行。Notebook 中的例子是返回to出现次数比the多的邮件# 返回 to 出现次数多于 the 的行 print(email_df.query(the to))该查询在 406 封邮件中筛选出 169 行输出显示[169 rows x 17 columns]结果按行索引展示例如Email 2the8, to13、Email 5157the4, to13。query()的表达式语法与 Python 布尔运算一致支持 、and/or、括号嵌套等是替代布尔索引如df[df[the] df[to]]的更简洁写法。可视化探索未清洗完也能先看图说话不需要等到数据完全清洗、分析完毕再开始画图。恰恰相反探索阶段的可视化能更快暴露数据中的模式patterns、关系relationships与问题problems。可视化还有两个附加价值它是与不直接参与数据管理的人员沟通的媒介——让非技术利益相关者直观理解数据它可能浮现出采集阶段未被提出的新问题推动目标修正。常见的探索性可视化手段包括直方图、散点图、箱线图等本仓库 3-Data-Visualization 章节对此有系统讲解例如 09-visualization-quantities 的数量可视化、12-visualization-relationships 的关系可视化。在 EDA 语境下建议先用直方图看单变量分布、用散点图看双变量关系、用箱线图找离群点形成先图后统计的探索闭环。识别不一致缺失值与异常值的排查本课介绍的所有技术describe()、sample()、query()、可视化都有助于发现缺失或异常值但 Pandas 还提供了专门的检测函数isna()/isnull()逐元素判断是否为缺失值两者等价isnull是isna的别名返回布尔掩码配合.sum()可统计每列缺失数量如data.isnull().sum()。探索缺失值的关键并不仅仅是发现缺失而是追问缺失的原因是数据录入遗漏、字段本身不适用还是采集过程丢失理解缺失机制才能决定后续处理策略——是删除、填充还是保留标记。仓库 08-data-preparation 一课配套 notebook.ipynb专门讲解了数据准备阶段的缺失值处理方案是分析阶段的自然延续。从源码侧印证examples/02_loading_data.py第 88-96 行展示了完整检测流程——missing_values data.isnull().sum()后按列打印若总缺失数为 0 则提示无需处理否则提示需要处理examples/05_real_world_example.py 同样以missing_counts data.isnull().sum()作为真实项目中的标准检查手段。实战演练NYC 出租车小费问题的 EDA 作业第 15 课的 作业说明 延续第 14 课 作业 中的场景客户想知道纽约黄色出租车乘客在冬天还是夏天给司机的小费更多。此时团队处于分析阶段需要基于 assignment.ipynb 和 data/taxi.csv200 条 2019 年 1 月与 7 月的出租车交易记录自行开展 EDA。作业要求运用本课技法回答三个问题数据中还有哪些其他因素可能影响小费金额——可关注passenger_count乘客数、trip_distance里程、fare_amount车费、payment_type支付方式现金支付通常无小费、PULocationID/DOLocationID上下车区域、VendorID供应商等列通过分组统计、query()筛选、散点图分析小费与各因素的关联哪些列最可能不需要用来回答客户问题——例如tpep_dropoff_datetime下车时间若只关心季节差异则非必需、store_and_fwd_flag存储转发标记、congestion_surcharge拥堵费等与季节-小费问题相关性较低的字段基于现有数据是否存在季节性小费行为的证据——可将 1 月冬季与 7 月夏季记录按月份分组比较tip_amount的均值、中位数与分布得出初步判断。assignment.ipynb 提供了起点代码通过!pip install pandas安装依赖后pd.read_csv(../../data/taxi.csv)加载数据并print(df)查看 18 列、200 行记录随后留出空白单元格供你自行开展 EDA。小结分析阶段的核心方法论可以浓缩为一条可复用的探索路径画像read_csv()加载 →shape/info()看规模与类型 →describe()看统计摘要抽样sample(n)随机浏览数据形态查询query()定向验证假设可视化直方图、散点图、箱线图多角度观察排查isna()/isnull()定位缺失追溯缺失原因。这些技术环环相扣共同服务于确认数据能回答问题这一生命周期目标。练习时建议直接运行 第 15 课 Notebook 复现每一步输出再在 作业 Notebook 中对出租车数据独立实践从而真正掌握 EDA 的完整工作流。【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考