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

如何加载Health-News-Tweets.zip中train文件夹文件并解决代码报错?

问题原因及修复方案

1. 直接报错原因

你定义路径的代码里,格式字符串"./Health-News-Tweets/%s/%s"包含2个%s占位符,但仅传入了1个参数s,参数数量不匹配才抛出该TypeError。你的数据集目录结构是Health-News-Tweets下直接分test、train两个子目录,所以路径只需要1个占位符即可。

2. 其他隐藏问题修正

除了路径报错外,现有代码还有几处逻辑问题会导致后续无法正常提取推文:

  • 直接把整个文件的内容作为单条数据追加到DataFrame,没有按行拆分每条推文,也没有按|分隔三列
  • 每次追加数据后都重复修改DataFrame列名,执行效率低
  • Pandas的append方法已经在高版本中废弃,建议使用pd.concat替代

3. 修改后完整代码

import pyprind
import pandas as pd
import os

# 初始化进度条,可根据实际文件数量调整数值
progBar = pyprind.ProgBar(3000)
# 提前指定列名
df = pd.DataFrame(columns=['ID', 'Timestamp', 'Tweet'])

for s in ('test', 'train'):
    # 修正路径格式,仅需要1个占位符
    path = "./Health-News-Tweets/%s" % s
    for file in os.listdir(path):
        file_path = os.path.join(path, file)
        # 按行读取文件,每行是一条推文
        with open(file_path, 'r', encoding='utf-8') as infile:
            for line in infile:
                line = line.strip()
                if not line:
                    continue
                # 按|拆分三列,maxsplit=2避免推文内容里的|影响拆分结果
                parts = [p.strip() for p in line.split('|', maxsplit=2)]
                if len(parts) == 3:
                    # 组装单行数据,拼接到总DataFrame
                    row = pd.DataFrame([parts], columns=df.columns)
                    df = pd.concat([df, row], ignore_index=True)
                progBar.update()

# 提取推文列直接调用即可
tweet_col = df['Tweet']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 21:00:02