KeyError,熊猫在做奇怪的事情

问题描述

我一直在寻找有关此错误的信息,但没有任何改善。熊猫似乎先遍历数据帧,然后再次遍历。但是,似乎在特定的迭代中迭代键时,会引发KeyError。可能是解释器出现问题,还是我的代码有错误? 任何帮助将不胜感激。

更多上下文:

这里有代码:

def extract_features(id_arr):
features_df = pd.read_csv(r'D:\fma_metadata\features.csv',index_col=0,na_values=['NA'],encoding='utf-8')
features = np.array(features_df.columns)
id_arr = np.asarray(id_arr,dtype=int)

for id in id_arr:
    row_features = []

    for key,value in features_df.iteritems():
        number = float(features_df[key][id])
        row_features.append(round(number,6))

    row_features = np.asarray(row_features)
    features = np.vstack((features,row_features))

features = np.delete(features,0)

return features


random_id = get_random_id()

extract_features(random_id)

错误:

  Traceback (most recent call last):
  File "C:/Users/*****/PycharmProjects/****/emotions-nn/deep-learning/input.py",line 65,in <module>
    print(extract_features(random_id))
  File "C:/Users/*****/PycharmProjects/****/emotions-nn/deep-learning/input.py",line 51,in extract_features
    number = float(features_df[key][id])
  File "C:\Users\*****\anaconda3\envs\tensorflow\lib\site-packages\pandas\core\series.py",line 882,in __getitem__
    return self._get_value(key)
  File "C:\Users\*****\anaconda3\envs\tensorflow\lib\site-packages\pandas\core\series.py",line 991,in _get_value
    loc = self.index.get_loc(label)
  File "C:\Users\*****\anaconda3\envs\tensorflow\lib\site-packages\pandas\core\indexes\base.py",line 2891,in get_loc
    raise KeyError(key) from err
KeyError: 800

解决方法

我猜它可能是您的多级索引。

# ids can be a list of integers too
def extract(ids: np.ndarray):
    # assuming the first 3 rows are "headers"
    df = pd.read_csv(r"C:\Users\danie\Downloads\features - subset.csv",header=[0,1,2],index_col=0,na_values=['NA'])

    # you can set a breakpoint here to see the current column order
    # print(df.columns)
    # and reorganize the way you want it

    # this is basically what you're trying to do if I'm not mistaken
    return df.loc[ids].round(6).to_numpy()

    # if there's a column order
    return df.loc[ids,order].round(6).to_numpy()

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...