Pandas объединить два кадра данных с условием - PullRequest
1 голос
/ 30 января 2020

Я хочу объединить два фрейма данных, оба фрейма имеют столбцы даты (df1[date1], df2[date2]). Я хочу, чтобы объединенный массив данных удовлетворял этому условию df2[date2] > df1[date1]. Второй кадр данных не имеет дубликатов, но первый имеет, поэтому он не работает должным образом:

Я точно знаю, что для каждой даты в df2 есть дата в df1, которая удовлетворяет этому условию. Но я не могу понять, как правильно присоединиться к ним. Я попытался сделать это:

joined = df1.join(df2, how='inner')
joined = joined.query('date2 > date1')

Но так как df1 имеет записи с дублирующимися идентификаторами, то способ их выравнивания после объединения приводит к ряду строк, не удовлетворяющих условию, поэтому я остаюсь с меньшей базой данных. Как я могу выполнить это? 1010 * это?

1 Ответ

1 голос
/ 30 января 2020

на основе вашей проверки Я предлагаю следующее решение:

1) concatenate (не join) 2 кадра данных.

df12 =  pd.concat([df1, df2], axis=1)

Я предполагаю, что индексы совпадают. Если нет - переиндексация по id или join по id.

2) отфильтровать строки, соответствующие критериям

df12 = df12[df12['date2'] > df12['date1]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...