数据分析也是 AI 的强项。不懂 Python 的 Excel 用户可以用自然语言分析数据,而开发者则可以用 AI 把数据分析效率提升数倍。
一、AI 数据分析的核心场景
场景
传统方式
AI 辅助方式
数据清洗
手写正则和替换规则,耗时长
自然语言描述清洗规则,AI 生成完整代码
统计分析
记忆各种统计函数和参数
描述分析目标即可,AI 选择合适方法
图表生成
查阅 Matplotlib 文档逐行写代码
AI 生成完整绘图代码,含中文配置
SQL 查询
手写复杂 SQL,多层嵌套容易出错
自然语言转 SQL,准确率>90%
报告生成
手动整理结论和图表
AI 综合分析结果,自动生成报告
二、CSV/Excel 数据处理 2.1 用 AI 加载和预览数据 1 2 3 4 5 6 7 8 9 import pandas as pddf = pd.read_csv("sales.csv" ) print ("数据集形状:" , df.shape)print ("列名:" , df.columns.tolist())print ("前 5 行:" , df.head())print ("数据类型:" , df.dtypes)print ("基本统计:" , df.describe())print ("非空值统计:" , df.count())
2.2 数据清洗 1 2 3 4 5 对 sales.csv 进行数据清洗: 1. 删除"备注"列(全是空值) 2. "金额"列中的符号去掉,转为浮点数 3. "日期"列转为 datetime 类型 4. "数量"列中的负值替换为 0
AI 生成的清洗代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import pandas as pdimport redf = pd.read_csv("sales.csv" ) df = df.drop(columns=["备注" ]) df["金额" ] = df["金额" ].apply( lambda x: float (re.sub(r'[¥$,]' , '' , str (x))) ) df["日期" ] = pd.to_datetime(df["日期" ], format ="%Y-%m-%d" ) df["数量" ] = df["数量" ].clip(lower=0 ) print ("清洗完成,剩余行数:" , len (df))
2.3 高级数据操作 1 2 3 4 5 对清洗后的数据做聚合分析: 1. 按月份统计总销售额和订单数 2. 找出销售额前 5 的产品 3. 计算每个用户的平均订单金额 4. 标注每个用户的消费等级(高/中/低)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 df["月份" ] = df["日期" ].dt.to_period("M" ) monthly = df.groupby("月份" ).agg( 总销售额=("金额" , "sum" ), 订单数=("订单ID" , "count" ) ).reset_index() top_products = df.groupby("产品名称" ).agg( 销售额=("金额" , "sum" ), 销量=("数量" , "sum" ) ).sort_values("销售额" , ascending=False ).head(5 ) user_avg = df.groupby("用户ID" )["金额" ].mean().reset_index() user_avg.columns = ["用户ID" , "平均订单金额" ] df["消费等级" ] = pd.qcut(df["金额" ], q=3 , labels=["低" , "中" , "高" ])
三、图表生成 3.1 基础图表 1 2 3 4 5 6 基于 sales.csv 生成以下图表: 1. 折线图:每月销售额趋势 2. 柱状图:各产品销量对比 3. 饼图:各分类销售额占比 要求:使用 Matplotlib,中文标签,保存为 PNG
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import matplotlib.pyplot as pltimport matplotlibmatplotlib.rcParams['font.sans-serif' ] = ['SimHei' ] matplotlib.rcParams['axes.unicode_minus' ] = False plt.figure(figsize=(10 , 5 )) plt.plot(monthly["月份" ].astype(str ), monthly["总销售额" ], marker='o' , linewidth=2 , color='#4F46E5' ) plt.title("每月销售额趋势" ) plt.xlabel("月份" ); plt.ylabel("销售额(元)" ) plt.xticks(rotation=45 ) plt.grid(alpha=0.3 ) plt.tight_layout() plt.savefig("monthly_sales.png" , dpi=150 )
3.2 高级可视化 1 2 3 4 5 生成一个仪表盘风格的图表组合: - 左上方:KPI 卡片(总销售额、订单数、客单价、同比) - 左下方:销售额趋势折线图 - 右上方:产品销量排行柱状图 - 右下方:分类占比环形图
AI 会生成多子图的组合图表代码,使用 plt.subplots 或 GridSpec 实现仪表盘布局。在 Cursor 中,你可以直接用自然语言描述想看到的可视化效果,AI 会生成对应的 Python 代码。
四、自然语言查询数据 4.1 SQL 生成 1 2 3 4 5 6 7 8 表结构: orders(id, user_id, product_id, amount, created_at, status) products(id, name, category, price) 查询: 1. 每个分类的销售总额(按金额降序) 2. 过去 30 天每天的下单人数 3. 购买次数最多的前 10 名用户
AI 生成:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 SELECT p.category, SUM (o.amount) AS total_salesFROM orders o JOIN products p ON o.product_id = p.idGROUP BY p.category ORDER BY total_sales DESC ;SELECT DATE (created_at) AS day , COUNT (DISTINCT user_id) AS usersFROM ordersWHERE created_at >= DATE ('now' , '-30 days' )GROUP BY DATE (created_at) ORDER BY day ;SELECT user_id, COUNT (* ) AS order_countFROM ordersGROUP BY user_idORDER BY order_count DESC LIMIT 10 ;
4.2 自然语言转 pandas 如果你更习惯 Python 而非 SQL,也可以用自然语言描述后让 AI 生成 pandas 代码:
1 2 用 pandas 实现:找出过去 30 天复购率最高的商品分类 (复购率 = 购买超过 1 次的用户数 / 总购买用户数)
1 2 3 4 5 6 recent = df[df["日期" ] >= df["日期" ].max () - pd.Timedelta(days=30 )] repurchase = recent.groupby(["分类" , "用户ID" ]).size().reset_index(name="购买次数" ) repurchase["是否复购" ] = repurchase["购买次数" ] > 1 repurchase_rate = repurchase.groupby("分类" )["是否复购" ].mean().sort_values(ascending=False ) print ("复购率最高的分类:" )print (repurchase_rate)
五、报告生成 1 2 3 4 5 6 基于上面的分析结果,生成一份中文分析报告: 1. 数据概况(数据量、时间范围、整体趋势) 2. 核心发现(3-5 个关键结论) 3. 建议措施 风格:给业务负责人看的,避免专业术语
AI 生成的不仅仅是代码,还有可直接使用的文字内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ## 销售数据分析报告 ### 数据概况 - 分析周期:2025年1月 - 2025年12月- 总订单数:12,847 笔- 总销售额:¥3,285,690- 平均客单价:¥255.7### 核心发现 1. **Q4 销售额增长 35%** :受双十一和年终促销推动2. **电子配件类贡献最大** :占总销售额的 42%3. **复购率持续提升** :老用户贡献了 65% 的订单4. **高价值用户集中在北上广深** :客单价高于均值 2.1 倍5. **退货率偏高** :服装类退货率达 12%,需关注### 建议 1. 增加高价值用户的专属优惠2. 优化服装类商品详情页,降低退货率3. 拓展二三线城市市场
六、进阶:时间序列分析 1 2 3 4 5 分析过去 12 个月的销售趋势,并预测下 3 个月的销售额: - 使用 statsmodels 或 Prophet - 标注节假日效应 - 输出预测区间 - 可视化实际 vs 预测
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 from statsmodels.tsa.seasonal import seasonal_decomposefrom statsmodels.tsa.holtwinters import ExponentialSmoothingts = monthly.set_index("月份" )["总销售额" ] decomp = seasonal_decompose(ts, model='multiplicative' ) decomp.plot() model = ExponentialSmoothing(ts, seasonal_periods=12 , trend='add' , seasonal='mul' ) fitted = model.fit() forecast = fitted.forecast(3 ) print ("下三个月预测销售额:" )print (forecast)
本章小结
数据处理(清洗、筛选、聚合)是 AI 的强项,描述清楚规则即可
自然语言转 SQL 能大幅降低数据查询门槛,准确率超过 90%
AI 能生成美观的可视化图表,只需描述意图和要求
让 AI 生成代码再运行,比直接给结论更可靠——代码可审计、可复现
进阶用法包括时间序列分析、预测建模等,AI 能选择合适的算法
数据分析中 AI 最大的价值是缩短”想法 → 结果”的反馈周期
下一篇看 AI 如何实现自动化工作流。