处理TSV文件删除注释、移除首两列后导出TXT时如何给句子间添加空格
修改方案
你当前代码的问题是导出多列数据时使用了to_csv默认的逗号作为分隔符,没有按需求用空格拼接同一行的多列内容,修改后的完整代码如下:
import os import pandas as pd path = "All_TSV_Files" files = [file for file in os.listdir(path) if file.endswith(".tsv")] c = 0 for file in files: df = pd.read_csv(os.path.join(path, file), comment='#', header=None, sep='\t', engine='python', # 新版本pandas已弃用error_bad_lines,换成on_bad_lines参数兼容 on_bad_lines='skip') # 删除前两列 df.drop(df.columns[[0, 1]], axis=1, inplace=True) if len(df.columns) >= 3: # 新增:逐行拼接所有剩余列,列之间用空格分隔 df = df.apply(lambda row: ' '.join(row.astype(str)), axis=1) # 导出处理后的数据 df.to_csv(os.path.join(path, f'admin{c}.txt'), index=False, header=False) c += 1
核心修改说明:
- 新增的
df.apply(lambda row: ' '.join(row.astype(str)), axis=1)逻辑会逐行处理所有剩余列,先把每列内容转为字符串格式,再用空格拼接为单个完整字符串,处理后DataFrame仅保留一列,每行就是分隔正确的完整内容 - 替换了旧版参数
error_bad_lines=False为on_bad_lines='skip',适配pandas 1.4及以上版本,如果你使用的是旧版本pandas,可改回原参数即可
内容的提问来源于stack exchange,提问作者Kimi Shui
相关产品推荐
相关产品推荐

