Pandas的索引0超出大小为0的轴0的界限`

2024-04-20 04:12:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个奇怪的错误。我已经修复了很多次,所以我确切地知道它的含义:我试图访问的行不存在。在

很公平。在

检查文件时,该行存在。这意味着要么我加载的文件不正确(我怀疑,在这种情况下,我想会抛出一个错误),要么是非常错误。在

我已经使我的词汇表成为一个很好的类,我在程序开始时初始化它。这是初始化:

def __init__(self, vocab_path, training_path):
    data = pd.read_csv(training_path, sep='|', escapechar='\\', encoding='utf-8')
    self.training_dataset = data.drop(['0'], 1)
    self.vocab_path = vocab_path
    try:
        self.vocab = pd.read_csv(vocab_path, sep='|', encoding='latin-1')
    except: # This is to avoid errors when the vocab file does not exist
        self.training_to_vocab()
        self.vocab = pd.read_csv(vocab_path, sep='|', encoding='latin-1')

这是导致错误的部分:

^{pr2}$

为什么会这样?初始化时不会引发错误。显然,我稍后在我的程序中调用training_to_vocab()(为了避免依赖except,如果没有调用training_to_vocab(),那么词汇表可能没有使用batch_to_words所必需的单词)。在

我不知道这里发生了什么。即使是很小的index_num(例如6)也找不到。在

这是我的vocabulary.csv的开始。在

index|word
-|hello
-|there
-|this 
-|is
-|junk

编辑

我想我知道问题出在哪里了。self.vocab['index'] == index_num这实际上是在该列中搜索该数字。因为我的列都是-,它永远找不到它。有人知道用熊猫索引搜索的方法吗?在


Tags: 文件csvto词汇表pathself程序read