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

如何使用Python从CSV中按字符串匹配条件返回对应数值

解决CSV中根据Col1包含指定术语返回对应Col2值的问题

你的代码问题在于遍历了整个DataFrame的所有列查找匹配,但实际上你只需要针对Col1列进行搜索即可。下面是两种简洁的实现方式:

方式1:获取所有匹配的Col2值(支持多个匹配行)

import pandas as pd

file_name = input("Enter file name: ")
df = pd.read_csv(file_name)
string1 = input("Enter search term: ")

# 直接在Col1列上检查是否包含指定术语,忽略大小写
matching_rows = df[df['Col1'].str.contains(string1, case=False)]

# 提取对应的Col2值
result = matching_rows['Col2'].tolist()

# 输出结果
if result:
    print(f"匹配到的Col2值为: {result}")
else:
    print("未找到匹配项")

方式2:仅获取第一个匹配的Col2值(适用于确定只有一个匹配的场景)

import pandas as pd

file_name = input("Enter file name: ")
df = pd.read_csv(file_name)
string1 = input("Enter search term: ")

# 找到第一个匹配的行并提取Col2值,无匹配时返回None
match_df = df[df['Col1'].str.contains(string1, case=False)]
match = match_df['Col2'].iloc[0] if not match_df.empty else None

if match is not None:
    print(f"匹配到的Col2值为: {match}")
else:
    print("未找到匹配项")

代码说明

  • 直接用df['Col1'].str.contains()替代df.apply(),只针对目标列搜索,效率更高且逻辑更清晰。
  • 通过布尔索引过滤匹配行后,直接提取Col2列的值,无需手动处理行号。
  • 加入空值判断,避免无匹配时抛出异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:15:00