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

如何筛选pandas索引匹配另一DataFrame任意位置值的行?

问题描述

需要从mrna_kirp数据框中筛选出索引值在gmt_c4数据框任意位置(行索引元组元素、列名、单元格值)出现的行。原代码:

mrna_subset = mrna_kirp.loc[mrna_kirp.index.isin(gmt_c4)]

无法满足需求,因为该写法仅匹配gmt_c4的列标签,而非整个数据框内的所有值。

解决方案

核心思路是先提取gmt_c4中所有出现过的唯一值(包括行索引元组的每个元素、列名、单元格值),再用这些值匹配mrna_kirp的索引:

# 提取gmt_c4所有位置的元素并去重
# 收集列名
col_values = set(gmt_c4.columns)
# 收集行索引元组中的所有元素
index_values = set()
for idx_tuple in gmt_c4.index:
    index_values.update(idx_tuple)
# 收集单元格值
cell_values = set(gmt_c4.values.flatten())

# 合并为完整的匹配集合
all_match_values = col_values.union(index_values).union(cell_values)

# 筛选目标行
mrna_subset = mrna_kirp.loc[mrna_kirp.index.isin(all_match_values)]
示例验证

在提供的示例数据中:

  • gmt_c4的行索引元组包含A1BG、A1CF、A2BP1这些值
  • 这些值会被加入到all_match_values集合中
  • 最终筛选出mrna_kirp中索引为A1BG、A1CF、A2BP1的行,与期望输出一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:13:06