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

如何使用Pandas正确读取含孟加拉语的空格分隔文本文件?

解决Pandas读取多空格分隔文本文件的问题

原代码的问题

  1. 列名带多余空格:你定义的列名(如'anger ')和文件表头的实际列名(anger)不一致,导致数据匹配错位。
  2. 分隔符设置错误:用sep=' '只能处理单个空格分隔,但文件是多个空格/制表符分隔,会导致读取结果混乱。
  3. 表头处理错误:设置header=None会把文件第一行的表头当成数据行,再用自定义列名覆盖,导致数据行错误。

正确读取代码

推荐使用delim_whitespace=True自动处理任意数量的空白分隔符,同时修正列名:

import pandas as pd

# 定义无多余空格的正确列名
cols = ['English Word', 'anger', 'anticipation', 'disgust', 'fear', 'joy', 'negative', 'positive', 'sadness', 'surprise', 'trust', 'Bengali Word']

# 读取文件:delim_whitespace=True处理多空格/制表符分隔,header=0指定第一行为表头
data = pd.read_csv('/content/gdrive/MyDrive/Bengali-NRC-EmoLex.txt', 
                   delim_whitespace=True, 
                   header=0, 
                   names=cols)
display(data)  # Colab中用display显示表格更美观

替代方案(使用正则分隔符)

如果遇到delim_whitespace不兼容的情况,可以用正则表达式匹配空白字符,指定engine='python':

import pandas as pd

cols = ['English Word', 'anger', 'anticipation', 'disgust', 'fear', 'joy', 'negative', 'positive', 'sadness', 'surprise', 'trust', 'Bengali Word']

data = pd.read_csv('/content/gdrive/MyDrive/Bengali-NRC-EmoLex.txt', 
                   sep='\s+', 
                   engine='python',
                   header=0, 
                   names=cols)
display(data)

额外注意

如果文件编码不是UTF-8,可添加encoding='utf-8'(或对应编码)参数确保孟加拉语字符正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:12:23