利用pandas选取表中符合条件的行——选取某个属性在指定列表中的所有行记录


最近遇到一个场景,需要从excel表中选取或剔除部分符合条件的数据。并且条件为离散值。

例如有一个成绩表,记录一个年级中600位同学的各科成绩,最左边一列为姓名,因此这列每个值都不相同。如果有一列100人的名单,从600人的大表中找出这100人的成绩记录,如何实现呢?

我们先看看一条的情况。


找出张三的各科成绩

df[df['student_name'] == '张三']

选取一条记录非常简单,类似的,选取多条记录我们很容易想到用判断元素是否在列表中的形式,将100人的名单变成一个列表,选取在列表中的人名

 
df[df['student_name'] in names]
 

由于df['student_name']不是单个元素,因此会报错:

 

 

我们可以用DataFrame的isin()方法,注意不要忘记括号

df[df['student_name'].isin(names)]

names为100个人名的列表,这时100位学生的成绩表就选取出来了。

 若需要选取不符合条件的记录,即“取反”,加上'~'即可

df[~df['student_name'].isin(names)]

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM