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

Python新手:从多个TSV文件提取条件数据并合并至Excel

处理多个TSV文件并合并结果的解决方案

针对你的需求,我们可以通过循环遍历文件列表的方式扩展原有代码,同时新增一列标注数据来源。以下是具体实现:

基础实现(手动指定文件列表)

如果已经明确要处理的文件名,直接列出来循环处理即可:

import pandas as pd

# 1. 定义要处理的TSV文件路径列表
file_list = [
    'C:/Users/filename1.tsv',
    'C:/Users/filename2.tsv',
    'C:/Users/filename3.tsv'
]

# 2. 创建空DataFrame存储所有筛选后的结果
all_results = pd.DataFrame()

# 3. 循环处理每个文件
for file_path in file_list:
    # 读取TSV文件,保留你原有的列名和分隔符设置
    df = pd.read_csv(file_path, names=['c1', 'c2', 'c3', 'c4'], delimiter='\t')
    # 筛选符合条件的行(和你原代码逻辑一致)
    filtered_df = df.loc[df['c2'].isin(['name'])]
    # 新增一列标注数据来源,这里提取文件名方便识别
    filtered_df['来源文件'] = file_path.split('/')[-1]
    # 将当前文件的结果合并到总结果中
    all_results = pd.concat([all_results, filtered_df], ignore_index=True)

# 4. 将最终合并结果导出到Excel
all_results.to_excel(r'C:/Users/combined_result.xlsx', index=False)

进阶实现(自动遍历目录下的TSV文件)

如果要处理某个目录下所有TSV文件,不用手动逐个列文件名,可以用os库自动获取:

import pandas as pd
import os

# 1. 指定要遍历的目标目录
target_dir = 'C:/Users/'

# 2. 自动获取目录下所有TSV文件的完整路径
file_list = [os.path.join(target_dir, f) for f in os.listdir(target_dir) if f.endswith('.tsv')]

# 3. 后续处理逻辑和基础实现一致
all_results = pd.DataFrame()
for file_path in file_list:
    df = pd.read_csv(file_path, names=['c1', 'c2', 'c3', 'c4'], delimiter='\t')
    filtered_df = df.loc[df['c2'].isin(['name'])]
    filtered_df['来源文件'] = os.path.basename(file_path)  # 直接提取文件名
    all_results = pd.concat([all_results, filtered_df], ignore_index=True)

all_results.to_excel(r'C:/Users/combined_result.xlsx', index=False)

关键细节说明

  • 来源列设置:通过filtered_df['来源文件'] = ...新增列,用文件名而非完整路径标注,更直观易读。
  • 数据合并:使用pd.concat()代替循环append,效率更高且能避免索引混乱,ignore_index=True会重置合并后的连续索引。
  • 参数兼容:完全保留了你原代码中的names和delimiter参数,确保文件读取格式和单个文件处理时一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:01:24