Панды не могут вычислить изин с двойной осью - PullRequest
0 голосов
/ 05 февраля 2019

Мой фрейм данных выглядит примерно так:

             userid           codeassigned         timestamp
15           553938              M1           1499371200000
15390        527638              M2           1599731200000
15389        521638              M2           1399901200000
15388        521638              M3           1439841200000
15387        553938              M4           1499521200000

Я взял подмножество этого фрейма данных (пользователь с последней меткой времени), выполнив:

df = df.sort_values('timestamp', ascending=False)
mask = df.duplicated('userid')
subset_df = df[~mask]

Теперь я хочу всестроки из основного кадра данных, где (userid, timestamp) находятся в subset_df (может быть несколько строк с одинаковым [userid, timestamp], но с другим назначенным кодом);для чего я делаю:

subset_df[['userid', 'timestamp']].isin(df)

Однако я получаю эту ошибку:

ValueError: cannot compute isin with a duplicate axis.

Есть идеи, что я делаю неправильно?

1 Ответ

0 голосов
/ 05 февраля 2019

Вам нужно merge для внутреннего объединения с отфильтрованным подмножеством:

subset_df = df.loc[~mask, ['userid', 'timestamp']]

df = subset_df.merge(df)

Или:

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