Python处理CSV时查找指定列值对应另一列内容的方法
Python筛选CSV指定列匹配值的实现方案
以下两种方案均可实现需求,可根据自身场景选择:
方案1:标准库实现(无第三方依赖)
无需安装额外包,适合轻量简单的处理场景,对应代码如下:
import csv def get_matched_column_b(csv_file_path: str, target_col_a: str) -> list: match_result = [] with open(csv_file_path, 'r', encoding='utf-8') as csv_file: reader = csv.DictReader(csv_file) for row in reader: if row['Column A'] == target_col_a: match_result.append(row['Column B']) return match_result # 调用测试 if __name__ == "__main__": print(get_matched_column_b("test.csv", "A")) # 输出结果:['yellow', 'blue'],符合预期
注意:如果你的CSV是GBK编码(Windows系统导出的CSV常见编码),将
encoding='utf-8'替换为encoding='gbk'即可避免乱码。
方案2:Pandas实现(适合大数据量场景)
如果需要处理的CSV文件数据量较大,或者后续还有其他数据处理需求,可以用Pandas实现,先执行安装命令:pip install pandas
对应实现代码:
import pandas as pd def get_matched_column_b(csv_file_path: str, target_col_a: str) -> list: df = pd.read_csv(csv_file_path, encoding='utf-8') return df[df['Column A'] == target_col_a]['Column B'].tolist() # 调用测试 if __name__ == "__main__": print(get_matched_column_b("test.csv", "A")) # 输出结果:['yellow', 'blue'],符合预期
内容的提问来源于stack exchange,提问作者selin
相关产品推荐
相关产品推荐

