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

如何用Pandas将目录中文本文件内容添加到DataFrame对应行的最后一列?

当然可以用Pandas实现这个需求!

我来给你拆解具体的实现步骤,核心是把DataFrame的每一行和对应的文本文件关联起来,再把文件内容填充到目标列里:

步骤1:导入必要的库

先把需要用到的工具库导入进来:

import pandas as pd
import os

步骤2:写一个读取文本文件的小函数

这个函数负责读取单个文件的内容,还加了基础的异常处理,避免找不到文件时程序崩溃:

def get_file_content(file_name, folder="Directory1"):
    # 拼接完整的文件路径
    full_path = os.path.join(folder, file_name)
    try:
        with open(full_path, 'r', encoding='utf-8') as file:
            # 读取整个文件内容并返回
            return file.read()
    except FileNotFoundError:
        print(f"提示:没找到文件 {full_path}")
        return None

步骤3:把文件内容和DataFrame行关联起来

这里分两种常见情况处理:

情况1:DataFrame里有对应文件名的列

比如你的DataFrame已经有一列(比如叫Filename)存储着每行对应的文件名(比如File1.txt),直接用apply方法批量处理就行:

# 假设你的现有DataFrame已经加载好了,比如从CSV读取
df = pd.read_csv("your_data.csv")

# 给Column3列填充对应文件的内容
df['Column3'] = df['Filename'].apply(get_file_content)

情况2:行顺序和文件顺序完全对应

如果你的DataFrame行的顺序和Directory1里的文件顺序完全匹配(比如第1行对应File1.txt,第2行对应File2.txt),可以先获取排序后的文件列表,再逐个读取:

# 获取Directory1下所有txt文件,按名称排序保证顺序一致
sorted_files = sorted([f for f in os.listdir("Directory1") if f.endswith('.txt')])

# 批量读取文件内容并赋值给Column3
df['Column3'] = [get_file_content(file) for file in sorted_files]

一些小提醒

  • 注意文本文件的编码格式,如果你的文件不是utf-8,可以把函数里的encoding参数改成对应的格式(比如gbk)
  • 单个文件70KB的大小完全不用担心性能,这种方法处理起来非常顺畅
  • 如果遇到缺失的文件,函数会返回None,你可以根据需求改成空字符串或者其他默认值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:10:33