关注不迷路,点赞走好运!!!
一、数据工厂的魔法原料
想象你经营着"代码の茶"奶茶连锁店🧋,每天面对这些数据挑战:
如何记录各分店的库存?
怎样分析不同配料的销售趋势?
能否自动生成采购清单?
DataFrame就是你的数据魔法手册,让我们看看如何用不同材料编织数据魔法!
二、字典编织法:奶茶配方的奥秘
2.1 基础配方:键值对应
import pandas as pd
奶茶原料魔法书
magic_recipe = {
'原料': ['珍珠', '椰果', '布丁', '芋圆'],
'库存(kg)': [50, 32, 20, 18],
'单价(元)': [3.5, 2.8, 4.0, 3.2]
}
施展字典转换术
df_recipe = pd.DataFrame(magic_recipe)
print("🍹基础配方表:")
print(df_recipe)
输出结果:
原料 库存(kg) 单价(元)
0 珍珠 50 3.5
1 椰果 32 2.8
2 布丁 20 4.0
3 芋圆 18 3.2
2.2 嵌套魔法:多层配方
分店销售嵌套字典
branch_sales = {
'北京店': {'珍珠奶茶': 120, '椰果绿茶': 85},
'上海店': {'布丁拿铁': 95, '芋圆奶盖': 110}
}
展开魔法卷轴
df_sales = pd.DataFrame(branch_sales)
print("\n🏙️分店销售矩阵:")
print(df_sales)
输出:
北京店 上海店
珍珠奶茶 120 NaN
椰果绿茶 85 NaN
布丁拿铁 NaN 95
芋圆奶盖 NaN 110
三、列表拼接法:订单流水线的艺术
3.1 单层流水线
当日订单流水线
order_list = [
['20240513_001', '珍珠奶茶', 18],
['20240513_002', '椰果绿茶', 15],
['20240513_003', '布丁拿铁', 20]
]
组装数据生产线
df_orders = pd.DataFrame(order_list,
columns=['订单号', '品名', '金额'])
print("\n📦当日订单表:")
print(df_orders)
3.2 多维魔方
周销售三维数据
weekly_data = [
[['北京店', 120, 85], ['上海店', 95, 110]],
[['北京店', 115, 90], ['上海店', 105, 118]]
]
魔方解构术
df_week = pd.DataFrame([item for sublist in weekly_data for item in sublist],
columns=['分店', '工作日', '周末'])
print("\n🗓️周销售魔方:")
print(df_week)
四、外部召唤术:数据异次元通道
4.1 CSV时空隧道
从CSV召唤历史数据
df_history = pd.read_csv('sales_history.csv',
parse_dates=['日期'],
dtype={'分店': 'category'})
print("\n🕰️历史数据预览:")
print(df_history.head(3))
4.2 Excel魔法卷轴
读取Excel魔法书
with pd.ExcelFile('branch_data.xlsx') as excel:
df_stock = pd.read_excel(excel, '库存表')
df_staff = pd.read_excel(excel, '员工表')
print("\n📊库存表结构:")
print(df_stock.info())
五、避坑指南:数据工厂安全手册
常见事故 | 灾难现场 | 应急预案 | 原理剖析 |
---|---|---|---|
列名失踪 | KeyError报错 | 检查字典键名一致性 | 字典键对应列名 |
维度混乱 | 数据错位 | 确认列表结构对齐 | 行列数量匹配 |
编码幽灵 | 乱码现象 | 指定encoding参数 | 文件编码识别 |
类型错乱 | 计算异常 | 显式指定dtype | 自动推断失效 |
六、终极奥义:智能建造系统
def 智能建造系统(数据源):
if isinstance(数据源, dict):
return pd.DataFrame(数据源)
elif isinstance(数据源, list):
return pd.DataFrame(数据源, columns=自动检测列名())
elif isinstance(数据源, str):
return 文件解析器(数据源)
raise ValueError("未知的魔法材料!")
def 文件解析器(文件路径):
扩展名 = 文件路径.split('.')[-1]
return {
'csv': pd.read_csv,
'xlsx': pd.read_excel,
'json': pd.read_json
}[扩展名](文件路径)
print("\n🤖智能建造演示:")
print(智能建造系统('sales_data.xlsx').head(2))
觉得有用?长按点赞三连击,知识不迷路~