Python: объединять / объединять кадры данных с перекрывающимся, но другим индексом даты - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть ряд информационных фреймов, которые содержат данные об осадках из набора дождемеров, которые работали в перекрывающееся время за последние двадцать лет. Например, первый работал между 2001 и 2004 годами, затем второй работал между 2003 и 2008 годами, третий - между 2007 и 2015 годами. Все они имеют дату в качестве индекса, но я не могу понять, как их объединить, сохраняя все индексы, даже когда Я использую следующее, что я думал, будет работать:

RG1_2 = RG1.merge(RG2, left_index=True, right_index=True)

Я ожидал, что это приведет к созданию кадра данных с индексом за 2001 и 2008 годы с двумя столбцами, содержащими записанные данные. Вместо этого он возвращается с 2003 по 2008 год, то есть индексы со второго кадра данных ... есть идеи?

Большое спасибо заранее!

Ответы [ 3 ]

0 голосов
/ 07 ноября 2018

Я думаю, вы должны попробовать объединить с внешним соединением:

result = pd.merge(RG1, RG2, on='date', how='outer')

и вот ссылка с некоторыми примерами: Примеры слияния панд

0 голосов
/ 07 ноября 2018

Вместо использования

RG1_2 = RG1.merge(RG2, left_index=True, right_index=True)

Попробуйте вместо этого:

RG1_2 = RG1.merge(RG2, on='join_key',how='outer',left_index=True, right_index=True)

Это объединит индексы, теперь возвращающиеся с 2003 по 2008 год.

0 голосов
/ 07 ноября 2018

Я думаю, вам следует попробовать outer join, слияние по умолчанию - с внутренним объединением, поэтому кажется, что к вашему случаю присоединяются только коррелированные значения.

RG1_2 = RG1.merge(RG2, left_index=True, right_index=True,how='outer')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...