Pandas做筛选

pandas做基础筛选

比如以下一个分数表
在这里插入图片描述
我们对这个分数表进行一些条件筛选
比如,年龄在30-35之间的,分数在60-70之间的数据

def Agefu_30_35(x):
    return 30<= x<= 35

def Score_60_70(x):
    return 60<= x <= 70
score = pd.read_excel('D:/Pandas/score.xlsx',index_col='ID')
score = score.loc[score['age'].apply(Agefu_30_35)].loc[score['score'].apply(Score_60_70)]

步骤就是在前面写上我们的条件函数Agefu_30_35和Score_60_70
用的时候使用的是loc函数,其实就是pandas的一个定位函数。
再按照apply函数进行筛选,两个条件直接写另一个loc
注意使用apply函数的时候后面不要写参数了。
结果:
在这里插入图片描述


简写方式:
就是把方括号冒号去掉直接写列名,这是python的用法

score = score.loc[score.age.apply(Agefu_30_35)].loc[score.score.apply(Score_60_70)]

优化代码,使用lambda表达式,前面不用写那俩函数
完整代码

score = pd.read_excel('D:/Pandas/score.xlsx',index_col='ID')
score = score.loc[score.age.apply(lambda a:30<=a<=35)]\
    .loc[score.score.apply(lambda x:60<= x <= 70)]
print(score)

其中的正斜线\的作用是在python中换行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值