我有两个数据源 - 一个来自数据库,另一个来自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
答案 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']))]