Excel 处理十万行数据就卡?用 Python 加 AI 助手,轻松处理百万级数据。
上周我接到一个需求:分析过去两年的销售数据,找出哪些产品的复购率最高。数据量大概 80 万行,Excel 打开直接假死。
我花 10 分钟用 AI 写了一段 Python 代码,3 秒跑完结果。
这就是 AI 时代数据分析的真相——你不需要成为程序员,但你需要知道怎么跟 AI 协作。
为什么 Excel 不够用了?
先说几个真实场景:
- 数据量大:超过 100 万行,Excel 直接罢工
- 重复操作多:每天要清理同样的数据,手动点鼠标点到麻木
- 复杂分析难:交叉分析、趋势预测,Excel 公式写到怀疑人生
- 无法复用:换了个人接手,没人知道你那些宏是怎么写的
Python + pandas 能解决这些问题。而 AI 能解决"不会写 Python"这个问题。
环境准备:5 分钟搞定
你不需要装什么复杂的开发环境。推荐两种方案:
方案一:Google Colab(零安装)
打开 colab.research.google.com,新建 Notebook,直接在浏览器里写代码。免费使用 GPU,适合临时分析。
方案二:本地 Jupyter + AI 插件
pip install jupyterlab pandas openai
jupyter lab
装好之后配合 Cursor 或 Copilot 这类 AI 编辑器,体验更好。
实操案例一:清洗脏数据
假设你拿到一份客户表,格式乱七八糟:
import pandas as pd
df = pd.read_excel('customers.xlsx')
# 查看数据概况
print(df.info())
print(df.describe())
# 清洗步骤
# 1. 去除重复行
df = df.drop_duplicates()
# 2. 处理缺失值
df['phone'] = df['phone'].fillna('未知')
df = df.dropna(subset=['email'])
# 3. 统一日期格式
df['order_date'] = pd.to_datetime(df['order_date'], errors='coerce')
# 4. 拆分地址(假设"北京市朝阳区建国路88号"需要拆)
df[['province', 'city', 'address']] = df['address'].str.extract(
r'(?P<province>[^省]+省)?(?P<city>[^市]+市)?(?P<address>.+)'
)
print(f"清洗后剩余 {len(df)} 条数据")
df.to_csv('cleaned_customers.csv', index=False)
这段代码看起来不少,但你其实只需要告诉 AI:
“我有一个 customers.xlsx 文件,里面客户数据有重复行、缺失值、日期格式不统一、地址需要拆分。请帮我写一段 Python 代码来清洗这些数据。”
AI 会在几秒内给你完整可运行的代码。
实操案例二:复购率分析
回到开头的场景——找出复购率最高的产品。
import pandas as pd
# 读取订单数据
orders = pd.read_csv('orders.csv')
# 按用户分组,统计每个用户的购买次数
user_purchase_count = orders.groupby('customer_id')['order_id'].nunique()
# 定义复购:购买次数 >= 2
repurchase_users = user_purchase_count[user_purchase_count >= 2]
# 统计每个产品的复购用户数
product_repurchase = orders[orders['order_id'].isin(repurchase_users.index)]
product_stats = product_repurchase.groupby('product_name').agg(
总购买人数=('customer_id', 'nunique'),
复购人数=('customer_id', lambda x: len(x[x.isin(repurchase_users.index)]))
)
# 计算复购率
product_stats['复购率'] = product_stats['复购人数'] / product_stats['总购买人数'] * 100
# 排序输出
result = product_stats.sort_values('复购率', ascending=False)
print(result.head(20))
跑出来的结果可能是这样的:
| 产品名 | 总购买人数 | 复购人数 | 复购率 |
|---|---|---|---|
| 有机咖啡豆 | 12,450 | 4,890 | 39.3% |
| 手冲壶套装 | 8,230 | 2,980 | 36.2% |
| 陶瓷马克杯 | 15,600 | 5,120 | 32.8% |
你看,咖啡相关的商品复购率明显更高。这个结论如果靠 Excel 透视表,你得先做三次数据透视,再手动算比率,还可能出错。
实操案例三:自动化日报
如果你每天都要做类似的报告,可以写成脚本一次性跑完:
import pandas as pd
from datetime import datetime, timedelta
# 读取昨天的数据
yesterday = datetime.now() - timedelta(days=1)
df = pd.read_csv('daily_orders.csv')
df['order_date'] = pd.to_datetime(df['order_date'])
yesterday_data = df[df['order_date'].dt.date == yesterday.date()]
# 计算核心指标
total_revenue = yesterday_data['amount'].sum()
total_orders = len(yesterday_data)
avg_order = yesterday_data['amount'].mean()
top_product = yesterday_data.groupby('product_name')['amount'].sum().idxmax()
# 生成日报
report = f"""
## 📊 每日销售报告 - {yesterday.strftime('%Y-%m-%d')}
- 总销售额:¥{total_revenue:,.2f}
- 订单数:{total_orders}
- 平均客单价:¥{avg_order:,.2f}
- 热销产品:{top_product}
"""
# 保存为 Markdown 文件
with open(f'report_{yesterday.strftime("%Y%m%d")}.md', 'w') as f:
f.write(report)
print("日报已生成!")
把这个脚本放到 crontab 里定时运行,每天早上自动出报告。
# 每天早上 8 点自动运行
0 8 * * * cd /path/to/script && python daily_report.py
AI 辅助分析的 5 个技巧
掌握了基础之后,这些技巧能让你的效率翻倍:
1. 用自然语言描述问题,让 AI 转成代码
不要纠结语法。直接说"帮我统计每个城市上个月的销售总额",AI 会给出正确的 pandas 代码。
2. 遇到报错直接贴给 AI
pandas 报 KeyError 或者 TypeError?别自己查文档了,直接把错误信息贴给 AI,通常 10 秒就能定位问题。
3. 让 AI 解释它写的代码
看不懂某段代码?让它逐行解释。这其实是最好的学习方式。
4. 用 AI 做探索性分析
告诉 AI 你的数据集结构,让它建议"你应该看哪些指标、怎么可视化"。很多分析盲区就是这样被发现的。
5. 建立自己的代码模板库
把常用的清洗、分析、导出代码存下来。下次换个数据集,改两行参数就能用。
下一步行动
今天就可以试试:
- 打开 Google Colab(不需要安装任何东西)
- 找一个你手头的数据集(CSV 或 Excel 都行)
- 告诉 AI 你想做什么分析
- 复制粘贴代码,看结果
你会发现,数据分析的门槛比你想象的低得多。
Excel 不是不好用,只是有些任务它真的不适合。Python + AI 的组合,正在重新定义普通人做数据分析的方式。
你的下一个数据分析任务是什么?不妨今天就用 AI 试试。