Pandad - KeyError: столбец отсутствует в индексе - PullRequest
0 голосов
/ 15 октября 2018

У меня есть пандас Dataframe, у которого есть список столбцов в функции groupby.Я получаю сообщение об ошибке

KeyError : "['Type1'] not in index"

Ниже приведен код, который выдает ошибку

temp_v1 = temp_df.groupby(level, as_index = False).sum()[[level, 'Type1', 'Type2','Type3', 'Type4', 'Type5']]

Может ли кто-нибудь подсказать мне, где я ошибаюсь в приведенном выше кадре данных.Спасибо ..

1 Ответ

0 голосов
/ 15 октября 2018

Я предполагаю, что проблема в строковом столбце Type1:

level = 'F'
temp_df = pd.DataFrame({
         'Type1':list('abcdef'),
         'Type2':[4,5,4,5,5,4],
         'Type3':[7,8,9,4,2,3],
         'Type4':[1,3,5,7,1,0],
         'Type5':[5,3,6,9,2,4],
         'col':[5,3,6,9,2,4],
         'F':list('aaabbb')
})

print (temp_df.dtypes)
Type1    object
Type2     int64
Type3     int64
Type4     int64
Type5     int64
col       int64
F        object
dtype: object

Решение - добавить список перед функцией sum, но Type1 столбец исключен, поскольку не числовой .

cols = [level, 'Type1', 'Type2','Type3', 'Type4', 'Type5']
temp_v1 = temp_df.groupby(level, as_index = False)[cols].sum()
print (temp_v1)
   F  Type2  Type3  Type4  Type5
0  a     13     24      9     14
1  b     14      9      8     15

Еще одна проблема - это опечатка в имени столбца или пробел, вы можете проверить это путем преобразования имен столбцов в list:

print (temp_df.columns.tolist())
['Type1', 'Type2', 'Type3', 'Type4', 'Type5', 'col', 'F']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...