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

无法将文本文件全部行加载到DataFrame,如何实现行追加?

解决DataFrame行追加问题

你的代码问题在于直接给DataFrame的列赋值,每次操作都会覆盖整个列的内容,最终只保留最后一次赋值的数据。要实现行追加,应该先把所有数据收集到列表中,最后再转成DataFrame,同时要正确配对发送者和消息内容。

修改后的代码示例

import os
import pandas as pd

filepath = r"D:\Projects\textfiles"
# 用列表存储每条聊天数据,每个元素是一个字典
chat_data = []
current_sender = None

for filename in os.listdir(filepath):
    inputpath = os.path.join(filepath, filename)
    with open(inputpath, 'r', encoding='utf-8') as file_data:
        for line in file_data.readlines():
            line = line.strip()  # 去掉首尾换行和空格
            if not line:  # 跳过空行
                continue
            if line.startswith("["):
                # 处理发送者信息:先去掉首尾的[],再按逗号分割取第一个部分作为发送者
                chat_meta_data = line.strip("[]").split(",", 1)[0].strip()
                current_sender = chat_meta_data
            else:
                # 确保有对应的发送者才添加数据
                if current_sender is not None:
                    chat_data.append({
                        'sender_name': current_sender,
                        'message_content': line
                    })

# 把列表转成DataFrame
chat_df = pd.DataFrame(chat_data)
display(chat_df)

关键修改点

  • 用chat_data列表存储每条聊天记录的字典,避免直接覆盖DataFrame列
  • 记录current_sender,确保消息内容和发送者正确配对
  • 处理空行和字符串清洗,避免无效数据
  • 修正split的参数,正确提取发送者名称(原代码split(",",0)不会分割字符串,因为第二个参数为0时split不执行分割)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:26:46