关注不迷路,点赞走好运!!!
目录导航
一、奶茶店数据危机
假设你经营着"代码の茶"奶茶连锁店🧋,某天发现:
VIP客户订单神秘消失?
新员工总是拿错流水号订单?
促销活动数据像珍珠奶茶般混作一团?
别慌!Pandas三剑客(loc、iloc、布尔索引)帮你化解危机!
二、标签索引:VIP点单术
2.1 基础定位:精准拿铁
import pandas as pd
奶茶订单数据
orders = pd.DataFrame({
'订单号': ['VIP001', 'A002', 'VIP003'],
'商品': ['珍珠奶茶', '椰果绿茶', '布丁拿铁'],
'金额': [18, 15, 20]
}, index=['张三', '李四', '王五'])
提取VIP003订单
vip_order = orders.loc['王五', '订单号']
print(f"🎯精准定位:{vip_order}")
输出:🎯精准定位:VIP003
就像用会员手机号直接调取订单记录
2.2 区域扫描:套餐组合
获取张三到王五的所有商品信息
combo = orders.loc['张三':'王五', '商品']
print("\n🍹套餐组合:")
print(combo)
类似扫描会员专属点单区域
三、位置索引:流水线取餐法
3.1 顺序抓取:流水作业
获取前两笔订单
line1 = orders.iloc[:2]
print("\n📦流水线订单:")
print(line1)
输出:
订单号 商品 金额
张三 VIP001 珍珠奶茶 18
李四 A002 椰果绿茶 15
如同按流水号顺序取餐
3.2 跳跃取餐:爆款精选
选取第0行和第2行的商品列
hot_items = orders.iloc[[0,2], 1]
print("\n🔥爆款精选:")
print(hot_items)
类似跳过普通款直接拿取网红单品
四、布尔索引:智能筛选黑科技
4.1 单条件过滤:会员识别
筛选VIP订单
vip_mask = orders['订单号'].str.contains('VIP')
vip_orders = orders[vip_mask]
print("\n🎩VIP专属:")
print(vip_orders)
自动识别会员标记
4.2 复合条件:促销神器
筛选金额>15的非VIP订单
promo = orders[(orders['金额'] > 15) & ~vip_mask]
print("\n🚀促销目标:")
print(promo)
精准锁定潜在升单客户
五、避坑指南:店长生存手册
灾难现场 | 事故原因 | 应急预案 | 原理剖析 |
---|---|---|---|
KeyError报错 | 标签拼写错误 | 使用.index 验证标签 | 标签严格匹配 |
数据错位 | 位置计算错误 | 先用shape 检查维度 | 位置从0计数 |
筛选失效 | 条件逻辑错误 | 分步验证布尔序列 | 运算符优先级 |
内存爆炸 | 大数据量操作 | 分块处理数据 | 资源优化策略 |
六、实战演练:智能订单系统
def 智能订单系统(原始数据):
# 标签索引处理VIP
vip订单 = 原始数据.loc[原始数据.index.str.contains('VIP')]
# 位置索引处理普通订单
普通订单 = 原始数据.iloc[::2] # 每隔一行取数据
# 布尔索引筛选高价值订单
高价值订单 = 原始数据[(原始数据['金额'] > 15) | (原始数据.index.str.len() > 2)]
# 生成报告
print(f"VIP订单数:{len(vip订单)}")
print(f"普通抽样数:{len(普通订单)}")
print(f"高价值订单:{len(高价值订单)}")
return pd.concat([vip订单, 普通订单, 高价值订单])
print("\n🤖系统运行结果:")
print(智能订单系统(orders))
觉得有用?长按点赞三连击,知识不迷路~