使用isin从两个数据帧的两个特定列返回值

2024-09-30 18:17:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个带有物理设备标识符的数据帧。我有一份设施清单。我只想返回主列表中两个数据帧中使用的位置。我正试图让以下工作,似乎我有一些语法不正确,或没有正确使用isin

print(filtered_locations[filtered_locations['id'].isin(filtered_departments.buildingid,filtered_stores.facilityid)])

我已经尝试过这种方法的一些变体-虽然文档中有许多示例专门展示了如何使用字典等扫描两个列表。但我在寻找只返回其他数据帧中两个指定列中的值的最快/最直接方法时遇到了问题


Tags: 数据方法id列表语法物理标识符filtered
1条回答
网友
1楼 · 发布于 2024-09-30 18:17:37

有关pandas.Series.isin()方法,请参阅文档here

它只接受一个参数

values : set or list-like

您所给出的是两个列表的元组,因此您需要将两个列表合并到一个列表中,例如或集合,集合可能更好,因为它不会包含重复的值

代码

ids = set(filtered_departments.buildingid.tolist() +\
filtered_stores.facilityid.tolist())

my_locations = filtered_locations[filtered_locations['id'].isin(ids)]

相关问题 更多 >