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

Python检查DataFrame是否含指定字符串 将匹配行存入新列表

实现方法

首先先修正你现有代码的两个基础语法问题:

  • 变量名不能带空格,new list 要改成 new_list
  • 你定义的lang_list里'es缺少闭合单引号,要补成'es'

顺着你原有循环逻辑补全的实现

判断匹配成功后,筛选对应行取出language和count字段的值追加即可,完整可运行代码:

import pandas as pd

# 示例数据
df = pd.DataFrame({
    'language': ['en-US', 'en'],
    'count': [12, 5]
})
lang_list = ['en', 'es']
new_list = []

for x in lang_list:
    # 判断当前语言是否存在于df的language列
    if x in df['language'].values:
        # 取出匹配行的两个字段,转成字典追加到列表
        match_data = df[df['language'] == x][['language', 'count']].iloc[0].to_dict()
        new_list.append(match_data)

运行后new_list的输出为:

[{'language': 'en', 'count': 5}]

es因为不在df的language列中,不会被加入结果。


更高效的pandas原生写法

如果数据量比较大,不用自己写循环,用pandas内置的isin()方法直接批量筛选即可,代码更简洁运行更快:

new_list = df[df['language'].isin(lang_list)][['language', 'count']].to_dict('records')

运行结果和循环写法完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 15:51:38