利用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