Pandas数据筛选黑魔法:像调奶茶一样玩转loc多条件查询

关注不迷路,点赞走好运!!!


目录导航

  1. 奶茶店的数据烦恼
  2. 单条件筛选:基础款奶茶
  3. 多条件组合:定制款特调
  4. 高级配方:隐藏菜单玩法
  5. 避坑指南:店长生存手册
  6. 实战演练:智能订单系统

一、奶茶店的数据烦恼

假设你经营着"代码の茶"奶茶连锁店🧋,某天发现:

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(促销目标)

像珍珠奶茶加椰果,满足任一配料都入选

条件A
逻辑组合
条件B
AND特调
OR混搭

四、高级配方:隐藏菜单玩法

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))

三连走起!点赞收藏加关注,知识奶茶不迷路~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值