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

如何删除pandas DataFrame列存储列表中以c.开头的元素

pandas 列表列过滤实现方案

核心思路

对存储列表的目标列调用apply()方法,将单列表的过滤逻辑批量应用到每一行的列表元素上。

完整实现代码

import pandas as pd

# 示例构造DataFrame,替换成你自己的df和目标列名即可
data = {
    "mutations": [
        ["c.7C>G", "(p.Pro3Ala)", "c.19G>T", "(p.Gly7Cys)"],
        ["c.49C>T", "(p.Gln17Ter)", "c.79A>T", "(p.Thr27Ser)"],
        ["c.37A>C", "(p.Thr13Pro)", "c.70A>T", "(p.Ile24Phe)"],
        ["c.17C>A", "(p.Ala6Asp)", "c.19G>T", "(p.Gly7Cys)"],
        ["c.19G>A", "(p.Gly7Ser)", "c.27A>T", "(p.Glu9Asp)"]
    ]
}
df = pd.DataFrame(data)

# 方法1:使用apply批量过滤
# 替换mutations为你的实际列名,可选择覆盖原列或者存入新列
df['filtered_mutations'] = df['mutations'].apply(
    lambda lst: [item for item in lst if not item.strip().startswith('c.')]
)

# 方法2:数据量较大时可以用原生列表推导式,性能略高于apply
# df['filtered_mutations'] = [
#     [item for item in lst if not item.strip().startswith('c.')] 
#     for lst in df['mutations']
# ]

效果说明

过滤前列表元素:["c.7C>G", "(p.Pro3Ala)", "c.19G>T", "(p.Gly7Cys)"]
过滤后列表元素:["(p.Pro3Ala)", "(p.Gly7Cys)"]
如果你的列表元素不存在首尾空格,可以去掉strip()方法,进一步提升执行效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:15:01