Python 数据分析的第一堂课:叙事化理解清洗、探索与可视化
10/23/2025
Python 数据分析的第一堂课:叙事化理解清洗、探索与可视化
在一个安静的午后,你打开了一份电商订单数据。第一眼,看见的是杂乱:缺失的地址、重复的订单号、价格字段里混入了字符串。你并不急于建模,而是先给自己一个目标——把这份数据“讲清楚”。
所谓“讲清楚”,并不是把每一列都变成干瘪的数字,而是用一条可复述的叙事,把数据从“原始”带到“可用”。你像整理房间一样,从清洗开始:去除明显的异常,统一时间格式,拆分复合字段,把无意义的取值收纳到统一的“未知”。这一步并不炫技,却极为关键,因为后面的每一个结论,都要建立在可被他人复现的清洗过程之上。
当数据逐渐整齐,你开始探索。不是一股脑画出几十张图,而是沿着问题推进:哪些城市的订单多?是否存在明显的季节性?复购是否集中在少数用户?每个问题都应该对应一幅图或一段统计描述,并在图下写出两句话:它告诉了我什么,它没能告诉我什么。这样的习惯会让你对图形保持敬畏,也避免被漂亮的视觉误导。
你会发现,可视化并不只是“好看”,它是沟通的语言。用柱状图比较分类,用折线图讲时间,用箱线图理解分布,用散点图看关系。图形的选择,反映了你对数据结构的理解。记住,图形没有银弹,关键是让读者足够容易地复现你的视角。
在探索的过程中,你也许会遇到一个反直觉的结果:某个促销期的订单增长并不明显。此时不要急于否定结论,而是回到数据:是不是漏掉了渠道信息?是不是把取消订单和成功订单混在一起?分析是来回的路,你需要在清洗与探索之间往返,像打磨一段文字一样不断修改,直到叙事与事实达成一致。
等到故事有了头绪,你可以尝试一个轻量的指标体系。比如订单转化率、客单价、复购率,用最少的指标描述业务的“体温”。不要贪多,先确保每个指标都有明确含义和稳定的计算方法。指标不是结论,它是提醒你观察的窗。
最后,你把整个过程收拢:把原始数据、清洗脚本、探索笔记、图形导出都放在一个可共享的项目里。别人拿到你的仓库,可以在一小时内跑出同样的图,并理解你为什么这么做。这就是数据分析的“第一堂课”——会算更重要,会说更难。你既要算得对,也要说得清。
下面是一个极简的示例,展示如何从 CSV 读取、做基本清洗与绘制图形。它远远不够,但足以让你开始:
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据并做基本清洗
df = pd.read_csv("orders.csv")
df = df.drop_duplicates(subset=["order_id"]).copy()
df["date"] = pd.to_datetime(df["date"], errors="coerce")
df = df[df["date"].notna()] # 去掉无效时间
# 构造按月的订单量走势
df["month"] = df["date"].dt.to_period("M").astype(str)
monthly = df.groupby("month")["order_id"].nunique()
monthly.plot(kind="line", marker="o")
plt.title("Monthly Orders")
plt.xlabel("Month")
plt.ylabel("Orders")
plt.tight_layout()
plt.show()
别忘了,把这段脚本背后的意图记录在你的笔记里:为什么按月?为什么选择去重订单号?为什么把无效时间直接过滤?当你能把这些选择讲清楚,你已经迈出了数据分析最重要的一步:让过程可复述,让结论可复查,让故事可传达。