我怎样才能在()/ Pandas中选择

时间:2014-09-12 17:11:05

标签: python pandas

我有两个数据源 - 一个来自数据库,另一个来自CSV文件。数据库只是一个关键。

从CSV文件中包含多个字段

Id  firstname  lastname
1   first1     last1
2   first2     last2
3   first3     last3

我正在寻找与Pandas一样的事情,就像我可以用SQL做的那样:

select * from adr_tmp where id in(select id from xyz where key = ‘x’);

delete from adr_tmp where id in(select id from xyz where key = ‘x’);

在此之后我应该有一个新的数据框

Id  firstname  lastname
1   first1     last1
2   first2     last2

1 个答案:

答案 0 :(得分:2)

这不是很难,你可以尝试:

adr_temp[adr_temp['id'].isin(list(xyz['id'][xyz['key'] == 'x']))]

这将返回adr_temp中的所有字段,其中'id'位于xyz的'id'列表中,其中'key'='x'

对于删除,您只需选择上述的补充:

adr_temp[~adr_temp['id'].isin(list(xyz['id'][xyz['key'] == 'x']))]