电商平台数据库设计(1.电商数据分析——Python基础)

电商平台数据库设计(1.电商数据分析——Python基础)
1.电商数据分析——Python基础

第1章 Python在电商数据分析中的实际价值

1.1 为什么电商数据分析师必须学Python

Python在电商数据分析里,主要解决三类问题:

大数据量处理:Excel打不开的CSV,Python轻松读

重复工作自动化:每天、每周的报表,写个脚本一键生成

复杂分析:用户复购、漏斗转化、RFM分层,Python都能做

而且,你不需要学Python Web、爬虫、机器学习这些用不上的东西。只学数据处理相关的语法和库,够用就行。

1.2 学习前的准备工作

1.2.1 Python安装

步骤1:下载Python

打开浏览器,访问Python官网 python.org

鼠标悬停在“Downloads”上,自动识别你的操作系统(Windows/Mac),点击下载按钮

下载最新版的Python安装包(如Python 3.12.x)

步骤2:安装Python(Windows)

双击下载的安装包

关键一步:勾选下方“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后,在命令行输入:

Plain Text
pip install jupyter
jupyter notebook

会自动打开浏览器,新建一个notebook。

我建议初学者用Jupyter Notebook,可以一行一行运行代码,实时看结果。

1.2.3 准备电商测试数据

为了后面的实操,你需要一份订单CSV文件。可以用以下方式生成:

方式一:自己模拟

在Excel中创建以下字段,保存为orders.csv:

order_id(订单号)

user_id(用户ID)

amount(订单金额)

status(订单状态)

date(下单时间)

填20-50行数据,金额从几十到几千不等,状态包括“已支付”“已取消”。

方式二:下载公开数据

Kaggle搜索“e-commerce data”,找一份小规模的订单数据集。

电商数据合规提示:如果用公司真实数据练习,务必脱敏。订单号、用户ID改成随机值,金额去掉尾数。不要在生产环境直接运行未经验证的代码。

第2章 Python基础认知:变量与数据类型

2.1 变量:给数据起个名字

在Python中,变量就像一个标签,贴在数据上。不需要声明类型,直接赋值。

电商场景:定义一个店铺名称、订单金额

Python
shop_name = "时尚女装旗舰店" # 字符串(文本)
order_amount = 299.00 # 浮点数(小数)
order_status = "已支付" # 字符串
is_high_value = True # 布尔值(True/False)

打印变量:

Python
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}

电商场景:用一个字典存储单笔订单信息

Python
order = {
"order_id": "ORD001",
"amount": 299.00,
"status": "已支付"
}
print(order["amount"]) # 输出299.0

2.3 查看数据类型

用type()函数检查变量类型,调试时很有用。

Python
print(type(shop_name)) #
print(type(order_amount)) #

⚠️ 实操避坑提醒:金额用浮点数时,可能会出现299.00变成298.9999999的情况(浮点数精度问题)。处理金额建议用整数(以分为单位)或使用decimal模块。我在统计GMV时遇到过总和差几分钱,被财务质疑,后来统一用整数才解决。

第3章 条件判断与循环

3.1 if/elif/else:让代码做决策

电商场景:根据订单状态判断是否计入GMV

Python
status = "已支付"
if status == "已支付":
print("计入GMV")
elif status == "已完成":
print("也计入GMV")
else:
print("不计入GMV")

电商场景:金额分层标记

Python
amount = 599.00
if amount >= 500:
label = "高价值订单"
elif amount >= 200:
label = "中价值订单"
else:
label = "普通订单"
print(label) # 输出:高价值订单

3.2 for循环:批量处理

电商场景:遍历订单金额列表,计算税后价

Python
amounts = [199, 399, 599, 89]
tax_rate = 1.13
for amt in amounts:
after_tax = amt * tax_rate
print(f"原价:{amt},税后:{after_tax:.2f}")

电商场景:遍历字典列表(多笔订单)

Python
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循环:条件满足时重复

电商场景:模拟库存扣减直到卖完

Python
stock = 10
while stock > 0:
print(f"剩余库存:{stock}")
stock -= 1
print("已售罄")

通常电商数据处理中用for更多,while用得少,了解即可。

我的踩坑经历:有一次用while写库存扣减,忘了写stock -= 1,结果变成无限循环,电脑风扇狂转。后来排查才发现循环条件永远为真。写循环时一定确认有退出条件。

第4章 函数定义与调用

4.1 定义函数:封装重复逻辑

电商场景:计算订单折扣后的实付金额

Python
def calculate_discount(amount, rate=0.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.15

4.2 函数返回多个值

电商场景:返回订单的税后金额和税费

Python
def calc_with_tax(amount, tax_rate=0.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 参数默认值与关键字参数

Python
def tag_order(amount, threshold=500):
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。

导入整个模块:

Python
import math
print(math.sqrt(16)) # 4.0

5.2 导入特定函数

Python
from math import sqrt, pi
print(sqrt(25)) # 5.0
print(pi) # 3.14159...

5.3 给模块起别名(常见做法)

Python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

这是电商数据分析的标准导入方式,后续教程会大量使用。

5.4 安装第三方库

在命令行中执行:

Plain Text
pip install pandas numpy matplotlib

如果下载慢,可以用国内镜像:

Plain Text
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

电商数据合规提示:导入第三方库时,确认库的来源是官方PyPI,避免使用来历不明的库,防止数据泄露风险。

第6章 综合实操案例:读取电商订单CSV并统计

6.1 案例背景

你拿到一份orders.csv文件,包含订单号、金额、状态等字段。需要完成:

读取文件,统计总订单数、总金额、平均金额

筛选出金额大于500元的订单,保存到新文件high_value_orders.csv

6.2 分步操作

步骤1:准备CSV文件

在Excel中创建以下数据,保存为orders.csv(UTF-8编码):

order_id

amount

status

ORD001

299

已支付

ORD002

599

已支付

ORD003

89

已取消

ORD004

1299

电商平台数据库设计(1.电商数据分析——Python基础)

已支付

ORD005

45

已支付

步骤2:编写Python脚本

新建一个Python文件或Jupyter Notebook,输入以下代码:

Python
# 1. 读取CSV文件
import csv
orders = []
with open('orders.csv', 'r', encoding='utf-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='', encoding='utf-8') as f:
fieldnames = ['order_id', 'amount', 'status']
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(high_value)
print(f"高价值订单数:{len(high_value)},已保存到high_value_orders.csv")

步骤3:运行脚本

在Jupyter中,逐单元格运行

或在命令行:python analysis.py

预期结果:

Plain Text
总订单数:5
总金额:2331.0
平均金额:466.20
高价值订单数:2,已保存到high_value_orders.csv

6.3 代码解读

csv.DictReader:将CSV每行读取为字典,字段名作为键

列表推导式:[order for order in orders if ...] 一行完成筛选

newline='':避免写入CSV时出现多余空行

⚠️ 实操避坑提醒:读取CSV时容易遇到编码问题。如果中文乱码,尝试encoding='utf-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基础:数据读取与初步探索」,教你用更强大的工具处理百万级订单数据。

有问题的评论区留言,我看到会回复。

💻 配套实训环境与动手练习

本文涉及的相关技术指令、开发环境与工具链已内置在边学边练在线实验室中,无需繁琐安装配置,随时在浏览器中实践体验:

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有