Выравнивание нескольких серий панд по индексу даты - PullRequest
0 голосов
/ 06 февраля 2019

у меня есть n pandas series.В основном они имеют одинаковое количество данных, но не всегда.

print(str(len(dfS1)))
print(str(len(dfS2)))
print(str(len(dfS3)))
print(str(len(dfS4)))

3025
3026
3025
3026

Мне нужно убедиться, что строки каждого дня выровнены правильно, например, я:

dfj = dfS1.join(dfS2, how='outer', rsuffix='_1').join(dfS3, how='outer', rsuffix='_2').join(dfS4, how='outer', rsuffix='_3')

Однако,если я распечатаю результирующие dataframe dfj ,

print(dfj)

          date   close     date_1  close_1     date_2  close_2     date_3  \
0    2007-01-24  143.99 2007-01-24    44.29 2007-01-25   124.80 2007-01-25 

      close_3  
0       77.80   
....

, как вы можете видеть, соединенные строки не выровнены.Строка 1 содержит значения для разных дат.

Как убедиться, что в каждой строке содержится значение, в котором совпадают все даты?Так, например, строка 1 начинается там, где все даты одинаковы в каждом dataframe.Каждая строка, в которой нет соответствующей даты во всех остальных dataframes, будет dropped.

Я понимаю, что могу сделать цикл и создать dataframe вручную, но я предполагаю, что pandas уже имеет встроенный способ сделать это.

1 Ответ

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

Вы не указали, к чему хотите присоединиться.

dfj = dfS1.join(dfS2, on='date_field_name', how='outer', rsuffix='_1')

Подробную информацию о dataframe.join


* 1008 см. В документации к пандам. Кроме того, если вы хотите отбросить строки, у которых нет совпадающей даты для всех кадров:

Для каждого присоединяемого кадра данных / серии необходимо использовать how = «внутренний» , а не «внешний».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...