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

pd.read_csv解析IMDb TSV数据集异常:部分制表符未被识别

问题1:TSV文件部分行制表符未被正确识别

针对IMDb数据集加载时的分隔符异常,试试以下方案:

  • 明确指定分隔符与引擎:默认的C引擎在处理含换行或特殊字符的字段时容易出错,换成Python引擎并强制指定制表符分隔,同时处理IMDb的缺失值标记:
    import pandas as pd
    df = pd.read_csv(
        'title.basics.tsv.gz',
        sep='\t',
        encoding='utf-8',
        engine='python',
        na_values='\\N'
    )
    
  • 排查非标准制表符:如果仍有问题,解压TSV文件后用文本编辑器定位解析错误的行,检查是否存在全角制表符或其他非标准分隔符。
问题2:primaryTitle != originalTitle筛选出看似相同的行

这种情况基本和dtype无关,核心是字符串存在不可见差异,按以下步骤处理:

  1. 清洗空白字符:先去除两个字段的前后空白(包括空格、换行、制表符):
    df['primaryTitle'] = df['primaryTitle'].str.strip()
    df['originalTitle'] = df['originalTitle'].str.strip()
    
  2. 查看原始字符串内容:对筛选出的"看似相同"的行,用repr()查看字符串原始形式,对比是否有不可见字符:
    sample_row = df[df['primaryTitle'] != df['originalTitle']].iloc[0]
    print("primaryTitle原始内容:", repr(sample_row['primaryTitle']))
    print("originalTitle原始内容:", repr(sample_row['originalTitle']))
    
  3. 统一大小写后比较:如果是大小写差异导致的误判,统一为小写后再筛选:
    filtered_df = df[df['primaryTitle'].str.lower() != df['originalTitle'].str.lower()]
    
  4. 强制统一字符串类型:如果字段不是标准字符串类型,强制转换确保类型一致:
    df['primaryTitle'] = df['primaryTitle'].astype(str)
    df['originalTitle'] = df['originalTitle'].astype(str)
    

内容的提问来源于stack exchange,提问作者iim7b5-v7-im7

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:52:48