1. 业务数据汇总的核心步骤
人工智能训练师在处理业务数据时,通常需要进行数据收集、清洗、转换、分析和存储,以便为机器学习模型提供高质量的数据。本指南将展示如何使用 Python 进行业务数据汇总,并提供详细的代码示例。
2. 业务数据汇总完整流程
2.1 业务数据来源
业务数据可以来自多个渠道:
- 数据库(MySQL、PostgreSQL、MongoDB)
- API 接口(RESTful API、GraphQL)
- Excel/CSV 文件
- 日志文件
- 实时数据流(Kafka、MQTT)
2.2 数据汇总的关键步骤
- 数据采集
- 数据清洗
- 数据转换
- 数据聚合
- 数据存储
- 数据可视化
- 数据导出
3. Python 实现业务数据汇总
3.1 读取数据
我们从数据库、CSV 和 API 三种不同的数据源获取业务数据,并进行汇总。
(1) 从 MySQL 数据库读取业务数据
import pymysql
import pandas as pd
# 连接 MySQL 数据库
conn = pymysql.connect(
host="localhost",
user="root",
password="password",
database="business_db"
)
# 查询数据
query = "SELECT order_id, customer_id, total_amount, order_date FROM orders"
df_mysql = pd.read_sql(query, conn)
# 关闭连接
conn.close()
# 显示数据
print(df_mysql.head())
(2) 从 CSV 文件读取业务数据
假设我们有一个 CSV 文件 sales_data.csv
,包含销售数据:
order_id,customer_id,total_amount,order_date
1001,5001,250.0,2024-01-01
1002,5002,120.5,2024-01-02
1003,5003,89.9,2024-01-03
使用 Pandas 读取 CSV:
df_csv = pd.read_csv("sales_data.csv")
print(df_csv.head())
(3) 从 API 获取业务数据
假设我们有一个 API https://api.example.com/sales
,返回 JSON 数据:
[
{"order_id": 2001, "customer_id": 6001, "total_amount": 300.0, "order_date": "2024-01-10"},
{"order_id": 2002, "customer_id": 6002, "total_amount": 150.5, "order_date": "2024-01-11"}
]
使用 requests
获取 API 数据:
import requests
# 发送 API 请求
url = "https://api.example.com/sales"
response = requests.get(url)
data = response.json()
# 转换为 DataFrame
df_api = pd.DataFrame(data)
print(df_api.head())
3.2 数据清洗
数据可能存在缺失值、重复值、异常值,需要进行清洗。
# 合并所有数据
df = pd.concat([df_mysql, df_csv, df_api])
# 处理缺失值(填充为 0)
df.fillna(0, inplace=True)
# 删除重复订单
df.drop_duplicates(subset=['order_id'], keep='first', inplace=True)
# 转换数据类型
df['order_date'] = pd.to_datetime(df['order_date'])
df['total_amount'] = df['total_amount'].astype(float)
print(df.info()) # 查看数据清洗后的信息
3.3 数据转换
转换数据格式,计算新字段,例如年度销售额、月度销售额。
# 添加年份和月份列
df['year'] = df['order_date'].dt.year
df['month'] = df['order_date'].dt.month
# 计算订单金额的税后金额(假设税率 10%)
df['total_amount_after_tax'] = df['total_amount'] * 1.1
print(df.head())
3.4 业务数据聚合
计算销售总额、订单数量、客户数量等关键指标。
# 按年份统计销售额
sales_summary = df.groupby("year")["total_amount"].sum().reset_index()
print("年度销售额:\n", sales_summary)
# 按月份计算订单数量
monthly_orders = df.groupby(["year", "month"])["order_id"].count().re