KeyError при объединении Dataframe - PullRequest
       31

KeyError при объединении Dataframe

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

У меня есть таблица с историей покупок клиентов.Необходимо заполнить новый столбец с указанием первого и последнего дня активности в исторических данных.

Формат входных данных: Index(['date_first', 'unique_id', 'event', 'price', 'product_id', 'category','month', 'buy', 'Bought_Before'], dtype='object')

df_first=df.sort_values(by=['date']).drop_duplicates(subset='unique_id', keep='first')    
df_last=df.sort_values(by=['date']).drop_duplicates(subset='unique_id', keep='last')
#renaming date column as first_Active_Day and last_active_Day to avoid #confusion in merge
df_first.columns=['first_active_day', 'unique_id', 'event', 'price', 'product_id', 'category','month', 'buy', 'Bought_Before']

df_first.columns=['last_active_day', 'unique_id', 'event', 'price', 'product_id', 'category','month', 'buy', 'Bought_Before']

df_result = df.merge(df,df_first['first_active_day'],df_last['last_active_day'], on='unique_id')

Мне нужна дата - первый и последний активный день, когда новые столбцы добавляются в исходный кадр данных.Я создавал промежуточный фрейм данных, чтобы получить первый и последний активный день.Пожалуйста, дайте мне знать, если это можно сделать простым или одним шагом.Ценю твою помощь.Спасибо!

Журнал ошибок: (ниже)

Файл "", строка 1, в df_result = df3.merge (df3, df_first, on = 'unique_id')

Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ frame.py", строка 6868, в объединенной копии = копия, индикатор = индикатор, проверка = проверка)

Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ reshape \ merge.py ", строка 48, в результате слияния, возвращаем op.get_result ()

Файл" C: \ ProgramData \ Anaconda3 \ lib\ site-packages \ pandas \ core \ reshape \ merge.py ", строка 546, в get_result join_index, left_indexer, right_indexer = self._get_join_info ()

Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ reshape \ merge.py ", строка 756, в _get_join_info right_indexer) = self._get_join_indexers ()

Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ "core \ reshape \ merge.py ", строка 735, в _get_join_indexers how = self.how)

Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ reshape \ merge.py "", строка 1142, в _get_join_indexers if how == 'left':

Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ generic.py", строка 1478, в ненулевое .format (self. class . name ))

ValueError: Истинное значение DataFrame неоднозначно.Используйте a.empty, a.bool (), a.item (), a.any () или a.all ().

...