无法将文本文件全部行加载到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
相关产品推荐
相关产品推荐

