关注不迷路,点赞走好运!!!
目录导航
一、奶茶店的数据烦恼
假设你经营着"代码の茶"奶茶连锁店🧋,某天发现:
VIP客户订单需要特殊标记?
促销活动要筛选特定时段的高消费订单?
新员工总把"常温"和"去冰"的订单搞混?
别慌!Pandas的loc方法就像奶茶调饮台,通过布尔逻辑组合,帮你调配出精准的数据特饮!
二、单条件筛选:基础款奶茶
2.1 温度筛选:精准拿铁
import pandas as pd
五月订单数据
orders = pd.DataFrame({
'订单号': ['VIP001', 'A002', 'VIP003', 'B004'],
'温度': ['常温', '去冰', '少冰', '多冰'],
'金额': [25, 18, 22, 20]
}, index=pd.date_range('20240501', periods=4))
筛选常温订单
常温订单 = orders.loc[orders['温度'] == '常温']
print("🌡️常温特饮:")
print(常温订单)
输出:
订单号 温度 金额
2024-05-01 VIP001 常温 25
就像精确设定奶茶温度,不差1℃
三、多条件组合:定制款特调
3.1 逻辑与(&):VIP特供
筛选VIP且金额>20的订单
vip特供 = orders.loc[(orders['订单号'].str.contains('VIP')) & (orders['金额'] > 20)]
print("\n🎩VIP尊享:")
print(vip特供)
像调制鸳鸯奶茶,同时满足咖啡和奶茶的风味要求
3.2 逻辑或(|):促销雷达
筛选金额>22或温度包含"冰"的订单
促销目标 = orders.loc[(orders['金额'] > 22) | (orders['温度'].str.contains('冰'))]
print("\n🚀促销目标:")
print(促销目标)
像珍珠奶茶加椰果,满足任一配料都入选
四、高级配方:隐藏菜单玩法
4.1 函数特调:自定义甜度
自定义甜度检测函数
def 检测甜度(备注):
return '半糖' in str(备注) or '微糖' in str(备注)
添加测试数据
orders['备注'] = ['加珍珠', '半糖', np.nan, '微糖去冰']
应用函数筛选
健康订单 = orders.loc[orders['备注'].apply(检测甜度)]
print("\n🍬甜度检测:")
print(健康订单)
像隐藏菜单,通过自定义规则解锁特殊订单
4.2 正则匹配:模糊搜索
筛选含"去冰"或"少冰"的订单
冰饮订单 = orders.loc[orders['温度'].str.contains('去冰|少冰', regex=True)]
print("\n❄️冰饮特辑:")
print(冰饮订单)
像模糊搜索奶茶配料,一网打尽相似选项
五、避坑指南:店长生存手册
灾难现场 | 翻车原因 | 急救方案 | 原理剖析 |
---|---|---|---|
条件失效 | 忘记加括号 | (A & B) | 运算符优先级 |
筛选错位 | 索引未对齐 | reset_index | 标签匹配 |
速度卡顿 | 大数据量 | 分块处理 | 内存优化 |
空值报错 | NaN处理 | fillna | 缺失值处理 |
六、实战演练:智能订单系统
def 智能订单处理(原始数据):
# 阶段一:VIP识别
vip标记 = 原始数据['订单号'].str.contains('VIP')
# 阶段二:促销筛选
促销条件 = (原始数据['金额'] > 20) | (原始数据['温度'].str.contains('冰'))
# 阶段三:组合查询
智能订单 = 原始数据.loc[vip标记 & 促销条件]
# 生成报告
print(f"🎯目标订单数:{len(智能订单)}")
return 智能订单.sort_values('金额', ascending=False)
print("\n🤖智能系统运行:")
print(智能订单处理(orders))
三连走起!点赞收藏加关注,知识奶茶不迷路~