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

如何基于Pandas中值为列表的列创建仅含uploads链接的新列

解决方法:从DataFrame的列表列中筛选含特定关键词的链接

要实现从每行的链接列表中仅保留包含"uploads"的链接并生成新列,你可以用Pandas的apply方法结合列表推导式,这是最直接高效的方式:

核心代码

import pandas as pd

# 假设你的DataFrame名为df,存储链接列表的列名为'link_list'
df['filtered_upload_links'] = df['link_list'].apply(
    lambda x: [link for link in x if 'uploads' in link]
)

代码说明

  • apply方法会遍历link_list列的每一行(每个链接列表)
  • 内嵌的lambda函数通过列表推导式,逐个检查列表中的链接:仅保留包含"uploads"子串的链接
  • 筛选后的新列表会被赋值到新列filtered_upload_links中

示例验证

用你提供的测试数据构造示例DataFrame,验证效果:

# 构造示例数据
sample_data = {
    'link_list': [
        [
            'https://seekingalpha.com/instablog/5006891-hfir/4960045-natural-gas-daily',
            'https://seekingalpha.com/article/4116929-weekly-natural-gas-storage-report',
            'https://static.seekingalpha.com/uploads/2017/10/26/5006891-15090647719993095_origin.png',
            'https://static.seekingalpha.com/uploads/2017/10/26/5006891-15090647854075453_origin.png',
            'https://static.seekingalpha.com/uploads/2017/10/26/5006891-1509065004154725_origin.png',
            'https://seekingalpha.com/account/research/subscribe?slug=hfir-energy&sasource=upsell'
        ]
    ]
}
df = pd.DataFrame(sample_data)

# 执行筛选
df['filtered_upload_links'] = df['link_list'].apply(lambda x: [link for link in x if 'uploads' in link])

# 查看结果
print(df['filtered_upload_links'].iloc[0])

执行后输出的结果就是你需要的筛选后的链接列表:

[
 'https://static.seekingalpha.com/uploads/2017/10/26/5006891-15090647719993095_origin.png',
 'https://static.seekingalpha.com/uploads/2017/10/26/5006891-15090647854075453_origin.png',
 'https://static.seekingalpha.com/uploads/2017/10/26/5006891-1509065004154725_origin.png'
]

额外说明

  • 如果原列表为空或没有符合条件的链接,该方法会返回空列表,不会抛出异常
  • 若需要忽略大小写匹配(比如同时匹配"UPLOADS"),可修改判断条件为'uploads' in link.lower()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:06:22