You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用isin()筛选并打印DataFrame中ID匹配的字符串列?

解决思路

我来帮你梳理下具体的解决步骤,你当前的代码只是生成了ID是否匹配的布尔序列,但还没用到这个序列去筛选data1里的目标列,所以才只得到了布尔值结果。

1. 先筛选出data1中ID同时存在于data2的行

首先我们需要用布尔索引,把data1里id出现在data2['id']中的行筛选出来:

# 筛选符合条件的data1行
filtered_rows = data1[data1['id'].isin(data2['id'])]

2. 提取并打印目标字符串列

假设你想要打印的是data1中的某一列(比如如果是user_id,就替换成你实际需要的列名),直接提取该列并打印即可:

# 替换成你需要的列名,比如'user_id'
print(filtered_rows['user_id'].to_string())

简化写法(合并成一行)

如果想更简洁,也可以把两步合并成一行:

print(data1[data1['id'].isin(data2['id'])]['user_id'].to_string())

额外补充:如果需要关联data2的字符串列(比如title)

如果你想要的是对应ID的data2中的字符串列(比如title),可以用merge做内连接,只保留两边都存在的ID对应的行:

import pandas as pd
# 内连接,只保留共同ID的行,提取需要的列
merged_result = pd.merge(data1[['id']], data2[['id', 'title']], on='id', how='inner')
# 打印data2的title列
print(merged_result['title'].to_string())

用你给出的示例数据测试的话,假设data2里的ID包含242、302、377,那么第一个方法会打印data1对应的user_id:196、186、22;第二个方法会打印这些ID对应的data2中的电影标题。

内容的提问来源于stack exchange,提问作者user1582859

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:44:46