Ошибка при использовании Pandas.remove_duplicates () - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь использовать Pandas.drop_duplicates (), рассматривая только определенное подмножество, но получаю ошибку KeyError: Index(['days'], dtype='object')

Индекс выглядит следующим образом: id, event_description, attribute1, attribute 2, attribute 3, days, days_supply, days_equivalent

Я хочучтобы игнорировать атрибут 2 и атрибут 3, поэтому я выполнил следующее

df = df.drop_duplicates(subset=['id', 'event_description', 'attribute1', 'days', 'days_supply', 'days_equivalent'])

, которое возвращает:

eyError                                  Traceback (most recent call last)
<ipython-input-4-3f7da32b380f> in <module>
      7 
      8 df = df.drop_duplicates(subset=['id', 'event_description', 'attribute1', 'days', 
->    9 'days_supply', 'days_equivalent'])
     10 
     11 print(df)

/anaconda3/lib/python3.6/site-packages/pandas/core/frame.py in drop_duplicates(self, subset, keep, inplace)
   4892 
   4893         inplace = validate_bool_kwarg(inplace, "inplace")
-> 4894         duplicated = self.duplicated(subset, keep=keep)
   4895 
   4896         if inplace:

/anaconda3/lib/python3.6/site-packages/pandas/core/frame.py in duplicated(self, subset, keep)
   4949         diff = Index(subset).difference(self.columns)
   4950         if not diff.empty:
-> 4951             raise KeyError(diff)
   4952 
   4953         vals = (col.values for name, col in self.items() if name in subset)

KeyError: Index(['days'], dtype='object')

После удаления days удаление дубликатов выполняется без изъянов, но янужно убедиться, что я считаю days.Что ошибка требует, чтобы я исправил?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Пришлось перепроверить имена столбцов.Days против days

0 голосов
/ 25 сентября 2019

Попробуйте с

df.drop_duplicates(subset=['id', 'event_description', 'attribute1', 'days', 'days_supply', 'days_equivalent'],inplace=True)

С: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop_duplicates.html

Попробуйте с

Возможно, ваш ДФ не очень хорошо сформирован, в любом случае, если вы считаете, что проблема связана сс dtype вы можете использовать функцию apply, чтобы проверить все данные df ['date'] следующим образом:

def checkType(someDate):
    ##Do verification
    return dateCorrected

df['date'] = df['date'].apply(checkType)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...