Как исправить ошибку «Key Error: Index» в блокноте jupyter - PullRequest
0 голосов
/ 18 января 2019

Я строю модель нейронной сети. Я использую Jupyter Notebook и импортировал необходимые библиотеки. Есть два набора данных, и он объединен в один. После объединения при запуске этого кода отображается сообщение об ошибке KeyError: Index ([]). Можете ли вы помочь мне решить эту проблему.

Код:

merge_vector = ["school","sex","age","address",
                "famsize","Pstatus","Medu","Fedu",
                "Mjob","Fjob","reason","nursery","internet"]

duplicated_mask = merged_df.duplicated(keep=False, subset=merge_vector)

Сообщение об ошибке:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-40-4f1a3ab8858b> in <module>()
----> 1 duplicated_mask = merged_df.duplicated(keep=False, subset=merge_vector)

E:\Anaconda2\envs\tensorflow\lib\site-packages\pandas\core\frame.py in duplicated(self, subset, keep)
   4379         diff = Index(subset).difference(self.columns)
   4380         if not diff.empty:
-> 4381             raise KeyError(diff)
   4382 
   4383         vals = (col.values for name, col in self.iteritems()

KeyError: Index(['Fedu', 'Fjob', 'Medu', 'Mjob', 'Pstatus', 'address', 'age', 'famsize',
       'internet', 'nursery', 'reason', 'school', 'sex'],
      dtype='object')

Импортированные библиотеки для модели NN

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from math import floor, ceil
from pylab import rcParams

%matplotlib inline

1 Ответ

0 голосов
/ 18 января 2019

Вам нужно intersection имен столбцов с merge_vector, потому что в DataFrame некоторые столбцы не существуют:

merge_vector = ["school","sex","age","address",
                "famsize","Pstatus","Medu","Fedu",
                "Mjob","Fjob","reason","nursery","internet"]

merged_df = pd.DataFrame({'internet':[4,5,5],
                          'school':[7,8,8],
                          'new':[1,2,3]})
print (merged_df)
   internet  school  new
0         4       7    1
1         5       8    2
2         5       8    3

existed_cols = merged_df.columns.intersection(merge_vector)
print (existed_cols)
Index(['internet', 'school'], dtype='object')

duplicated_mask = merged_df.duplicated(keep=False, subset=existed_cols)
print (duplicated_mask)
0    False
1     True
2     True
dtype: bool
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...