📘 Pandas 基础 供应链需求预测实战 · 第3讲

📌 Series · DataFrame · 数据读取 · 概览

📦 1. Series & DataFrame 创建

🔹 Series 创建

# 从列表创建 Series,指定索引
import pandas as pd

pd.Series([120, 85, 210, 67], 
          index=['SKU_A', 'SKU_B', 'SKU_C', 'SKU_D'],
          name='demand_qty')
索引需求值 (demand_qty)
SKU_A120
SKU_B85
SKU_C210
SKU_D67

🔸 DataFrame 创建 (字典方式)

# 字典 → DataFrame,自动对齐索引
data = {
    'product':  ['A-101', 'B-202', 'C-303', 'D-404'],
    'warehouse':['上海', '广州', '北京', '成都'],
    'demand':   [340, 215, 507, 189],
    'price':    [12.5, 8.9, 15.0, 7.2]
}
df = pd.DataFrame(data)
print(df)
productwarehousedemandprice
A-101上海34012.5
B-202广州2158.9
C-303北京50715.0
D-404成都1897.2

📂 2. 数据读取 (CSV / Excel)

📄 读取 CSV

# 从CSV读取供应链销售数据
df_sales = pd.read_csv('supply_chain_demand.csv', 
                         encoding='utf-8')
# 常用参数:sep, header, index_col, parse_dates

📗 读取 Excel

# 读取Excel文件,指定工作表
df_excel = pd.read_excel('forecast_data.xlsx',
                         sheet_name='Demand',
                         engine='openpyxl')
💡 供应链小贴士 CSV/Excel 常见字段: order_date, SKU, warehouse, demand_qty, unit_price, region

🔎 3. 数据概览 (head, info, describe)

👀 head() — 预览前5行

print(df.head())      # 默认前5行
print(df.head(10))     # 指定前10行

📋 info() — 列类型 & 缺失值

df.info()  
# 输出示例:
# RangeIndex: 1200 entries, 0 to 1199
# Data columns (total 6 columns):
# 0   SKU         1200 non-null   object
# 1   demand_qty  1198 non-null   float64
# 2   price       1200 non-null   float64
# 3   warehouse   1200 non-null   object
# 4   order_date  1200 non-null   datetime64[ns]
# dtypes: float64(2), object(2), datetime64[ns](1)

📊 describe() — 统计摘要

print(df.describe())   
# 对数值列自动计算:count, mean, std, min, 25%, 50%, 75%, max
统计量demand_qtyprice库存成本
count1198.01200.01195.0
mean276.414.238.76
std134.25.673.21
min12.02.101.05
25%178.09.806.10
50%265.013.508.40
75%365.018.2011.30
max820.029.9018.50

🧩 供应链数据流 · Pandas 概览

📁 CSV / Excel 原始数据源 🐼 Pandas read_csv / read_excel 📊 DataFrame 二维表格结构 head info describe 📌 供应链需求预测 数据读取 → 概览 → 清洗 → 建模 📋 快速掌握数据全貌,为预测分析打下基础
📌 常用 df.columns 查看列名 📌 缺失 df.isnull().sum() 📌 类型 df.dtypes