2016-10-21 97 views
1

如何删除列值在列表中的Pandas数据框中的某些行?例如:删除列表中列值的Pandas中的DataFrame行

given mylist = [fh3, fh1, fh4] 

    id loc_id 
0 fh0 0859 
1 fh1 5861 
2 fh2 2585 
3 fh3 853 
4 fh4 45596 
4 fh5 586 

remove rows where id in mylist: 

    id loc_id 
0 fh0 0859 
2 fh2 2585 
4 fh5 586 

回答

2

使用isinboolean indexing

mylist = ['fh3', 'fh1', 'fh4'] 
print (df[~df.id.isin(mylist)]) 
    id loc_id 
0 fh0  859 
2 fh2 2585 
4 fh5  586 

drop另一种解决方案:

mylist = ['fh3', 'fh1', 'fh4'] 
print (df.set_index('id').drop(mylist).reset_index()) 
    id loc_id 
0 fh0  859 
1 fh2 2585 
2 fh5  586 
相关问题