1.Python在电商数据分析中的实际价值探索

张开发
2026/4/19 4:21:25 15 分钟阅读

分享文章

1.Python在电商数据分析中的实际价值探索
Python在电商数据分析中的实际价值第1章 Python在电商数据分析中的实际价值1.1 为什么电商数据分析师必须学PythonPython在电商数据分析里主要解决三类问题大数据量处理Excel打不开的CSVPython轻松读重复工作自动化每天、每周的报表写个脚本一键生成复杂分析用户复购、漏斗转化、RFM分层Python都能做而且你不需要学Python Web、爬虫、机器学习这些用不上的东西。只学数据处理相关的语法和库够用就行。1.2 学习前的准备工作1.2.1 Python安装步骤1下载Python打开浏览器访问Python官网python.org鼠标悬停在“Downloads”上自动识别你的操作系统Windows/Mac点击下载按钮下载最新版的Python安装包如Python 3.12.x步骤2安装PythonWindows双击下载的安装包关键一步勾选下方“Add Python to PATH”添加到环境变量否则命令行找不到python命令点击“Install Now”安装完成后点击“Close”步骤3验证安装按Win R输入cmd回车打开命令提示符输入python --version回车如果显示Python 3.12.x说明安装成功我第一次安装时忘了勾选“Add Python to PATH”结果在命令行敲python提示“不是内部命令”。重装一遍才解决。这个坑新手必踩一定记得勾上。1.2.2 选择IDE写代码需要编辑器。新手推荐两个VS Code免费功能强大访问code.visualstudio.com下载安装打开后点击左侧“扩展”图标搜索“Python”安装微软官方的Python插件Jupyter Notebook适合教学和探索安装完Python后在命令行输入pip install jupyter jupyter notebook会自动打开浏览器新建一个notebook。我建议初学者用Jupyter Notebook可以一行一行运行代码实时看结果。1.2.3 准备电商测试数据为了后面的实操你需要一份订单CSV文件。可以用以下方式生成方式一自己模拟在Excel中创建以下字段保存为orders.csvorder_id订单号user_id用户IDamount订单金额status订单状态date下单时间填20-50行数据金额从几十到几千不等状态包括“已支付”“已取消”。方式二下载公开数据Kaggle搜索“e-commerce data”找一份小规模的订单数据集。如果用公司真实数据练习务必脱敏。订单号、用户ID改成随机值金额去掉尾数。不要在生产环境直接运行未经验证的代码。第2章 Python基础认知变量与数据类型2.1 变量给数据起个名字在Python中变量就像一个标签贴在数据上。不需要声明类型直接赋值。电商场景定义一个店铺名称、订单金额shop_name 时尚女装旗舰店 # 字符串文本 order_amount 299.00 # 浮点数小数 order_status 已支付 # 字符串 is_high_value True # 布尔值True/False打印变量print(shop_name) print(order_amount)2.2 数据类型电商订单中常用的数据类型类型说明示例字符串(str)文本ORD001,已支付整数(int)整数299,1000浮点数(float)小数299.00,45.50布尔(bool)真/假True,False列表(list)多个值的集合[连衣裙,上衣,裤子]字典(dict)键值对{店铺:女装,GMV:50000}电商场景用一个字典存储单笔订单信息order { order_id: ORD001, amount: 299.00, status: 已支付 } print(order[amount]) # 输出299.02.3 查看数据类型用type()函数检查变量类型调试时很有用。print(type(shop_name)) # class str print(type(order_amount)) # class float金额用浮点数时可能会出现299.00变成298.9999999的情况浮点数精度问题。处理金额建议用整数以分为单位或使用decimal模块。我在统计GMV时遇到过总和差几分钱被财务质疑后来统一用整数才解决。第3章 条件判断与循环3.1 if/elif/else让代码做决策电商场景根据订单状态判断是否计入GMVstatus 已支付 if status 已支付: print(计入GMV) elif status 已完成: print(也计入GMV) else: print(不计入GMV)电商场景金额分层标记amount 599.00 if amount 500: label 高价值订单 elif amount 200: label 中价值订单 else: label 普通订单 print(label) # 输出高价值订单3.2 for循环批量处理电商场景遍历订单金额列表计算税后价amounts [199, 399, 599, 89] tax_rate 1.13 for amt in amounts: after_tax amt * tax_rate print(f原价{amt}税后{after_tax:.2f})电商场景遍历字典列表多笔订单orders [ {id: ORD001, amount: 299}, {id: ORD002, amount: 499}, {id: ORD003, amount: 99} ] for order in orders: if order[amount] 200: print(f{order[id]} 是大额订单)3.3 while循环条件满足时重复电商场景模拟库存扣减直到卖完stock 10 while stock 0: print(f剩余库存{stock}) stock - 1 print(已售罄)通常电商数据处理中用for更多while用得少了解即可。我的踩坑经历有一次用while写库存扣减忘了写stock - 1结果变成无限循环电脑风扇狂转。后来排查才发现循环条件永远为真。写循环时一定确认有退出条件。第4章 函数定义与调用4.1 定义函数封装重复逻辑电商场景计算订单折扣后的实付金额def calculate_discount(amount, rate0.9): 计算折扣后金额默认9折 return amount * rate # 调用函数 final_price calculate_discount(299) print(final_price) # 269.1 # 传入自定义折扣 final_price calculate_discount(299, 0.85) print(final_price) # 254.154.2 函数返回多个值电商场景返回订单的税后金额和税费def calc_with_tax(amount, tax_rate0.13): tax amount * tax_rate after_tax amount tax return after_tax, tax result, tax calc_with_tax(500) print(f税后{result}税费{tax})4.3 参数默认值与关键字参数def tag_order(amount, threshold500): if amount threshold: return 高价值 else: return 普通 print(tag_order(600)) # 高价值 print(tag_order(300)) # 普通 print(tag_order(300, 400)) # 高价值阈值改为400函数里的变量是局部变量外面访问不到。我刚开始写函数时想在函数外打印函数内部的变量结果报错。后来才明白需要用return把值传出来。第5章 模块与包导入5.1 导入整个模块Python有大量内置模块和第三方库。数据分析最常用的是pandas、numpy、matplotlib。导入整个模块import math print(math.sqrt(16)) # 4.05.2 导入特定函数from math import sqrt, pi print(sqrt(25)) # 5.0 print(pi) # 3.14159...5.3 给模块起别名常见做法import pandas as pd import numpy as np import matplotlib.pyplot as plt这是电商数据分析的标准导入方式后续教程会大量使用。5.4 安装第三方库在命令行中执行pip install pandas numpy matplotlib如果下载慢可以用国内镜像pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple导入第三方库时确认库的来源是官方PyPI避免使用来历不明的库防止数据泄露风险。第6章 综合实操案例读取电商订单CSV并统计6.1 案例背景你拿到一份orders.csv文件包含订单号、金额、状态等字段。需要完成读取文件统计总订单数、总金额、平均金额筛选出金额大于500元的订单保存到新文件high_value_orders.csv6.2 分步操作步骤1准备CSV文件在Excel中创建以下数据保存为orders.csvUTF-8编码order_idamountstatusORD001299已支付ORD002599已支付ORD00389已取消ORD0041299已支付ORD00545已支付步骤2编写Python脚本新建一个Python文件或Jupyter Notebook输入以下代码# 1. 读取CSV文件 import csv orders [] with open(orders.csv, r, encodingutf-8) as f: reader csv.DictReader(f) for row in reader: # 将金额转为浮点数 row[amount] float(row[amount]) orders.append(row) # 2. 统计 total_orders len(orders) total_amount sum(order[amount] for order in orders) avg_amount total_amount / total_orders if total_orders 0 else 0 print(f总订单数{total_orders}) print(f总金额{total_amount}) print(f平均金额{avg_amount:.2f}) # 3. 筛选高价值订单金额500 high_value [order for order in orders if order[amount] 500] # 4. 保存到新CSV with open(high_value_orders.csv, w, newline, encodingutf-8) as f: fieldnames [order_id, amount, status] writer csv.DictWriter(f, fieldnamesfieldnames) writer.writeheader() writer.writerows(high_value) print(f高价值订单数{len(high_value)}已保存到high_value_orders.csv)步骤3运行脚本在Jupyter中逐单元格运行或在命令行python analysis.py预期结果总订单数5 总金额2331.0 平均金额466.20 高价值订单数2已保存到high_value_orders.csv6.3 代码解读csv.DictReader将CSV每行读取为字典字段名作为键列表推导式[order for order in orders if ...]一行完成筛选newline避免写入CSV时出现多余空行读取CSV时容易遇到编码问题。如果中文乱码尝试encodingutf-8-sig或gbk。另外金额列默认读进来是字符串一定要用float()转换否则求和会报错。第7章 本章踩坑清单与合规总结7.1 新手常见踩坑场景错误操作正确做法安装Python忘记勾选“Add Python to PATH”安装时勾选或手动添加环境变量变量命名用if、for等关键字作为变量名使用有意义的英文如order_amount数据类型金额用字符串直接求和先转换为float或int循环忘记更新循环变量导致无限循环确保循环内有退出条件文件路径脚本和CSV不在同一目录使用绝对路径或os.chdir()切换目录7.2 电商数据合规提示数据脱敏练习本案例使用的订单数据是模拟的。如果用真实数据必须对订单号、用户ID等做脱敏处理。代码安全不要将包含数据库连接信息、API密钥的代码上传到公开仓库。使用环境变量或配置文件管理敏感信息。数据留存分析完成后及时删除不需要的中间文件避免数据泄露。第8章 结语恭喜你完成了Python入门你已经学会了变量、条件判断、循环、函数、模块导入并用一个真实案例读取了订单CSV并做了统计。这些基础足够支撑后续的Pandas、NumPy等数据分析库的学习。下一章我会讲「Pandas基础数据读取与初步探索」教你用更强大的工具处理百万级订单数据。有问题的评论区留言我看到会回复

更多文章