ValueError: длины должны совпадать для сравнения при совпадении значений из разных фреймов данных - PullRequest
0 голосов
/ 02 августа 2020

У меня есть фрейм данных offer_received_data вот так:

            customer_id                 offer_id                              time  offer_received offer_viewed 
0   78afa995795e4d85b5d9ceeca43f5fef    9b98b8c7a33c4b65b9aebfe6a799e6d9       0.0    1            0    
53176   78afa995795e4d85b5d9ceeca43f5fef    5a8bc65990b245e5a138643cd4eb9837   7.0    1            0    
150598  78afa995795e4d85b5d9ceeca43f5fef    ae264e3637204a6fb9bb56bc8210ddfd   17.0   1            0    

и фрейм данных portfolio вот так:

     customer_id                     reward difficulty  duration    informational   discount    bogo    mobile  social  web
0   ae264e3637204a6fb9bb56bc8210ddfd    10  10  7   0   0   1   1   1   0

Я хотел получить информацию из portfolio для customer_id, которые включены в offer_received_data.

Вот мой код:

# make a list of the unique customer_ids from offer_df
customer_ids = offers_df['customer_id'].unique()

# match customer_ids between profile dataframe and the list above
customer = profile[profile['customer_id'] == customer_ids]

Это возвращает ошибку:

ValueError: Lengths must match to compare

Может кто-нибудь смотрю, не знаю, как изменить этот код, большое спасибо.

1 Ответ

1 голос
/ 02 августа 2020

Вы должны использовать isin, также добавьте копию в конце, чтобы избежать потери копии в будущем

customer = profile[profile['customer_id'].isin(customer_ids)].copy()
...