concat pandas DataFrame по индексам таймсерий

У меня есть два довольно DateFrame фрагмента) pandas DateFrame s с неравными датами в качестве индексов, которые я хочу конкатрировать в один:

  NAB.AX CBA.AX Close Volume Close Volume Date Date 2009-06-05 36.51 4962900 2009-06-08 21.95 0 2009-06-04 36.79 5528800 2009-06-05 21.95 8917000 2009-06-03 36.80 5116500 2009-06-04 22.21 18723600 2009-06-02 36.33 5303700 2009-06-03 23.11 11643800 2009-06-01 36.16 5625500 2009-06-02 22.80 14249900 2009-05-29 35.14 13038600 --AND-- 2009-06-01 22.52 11687200 2009-05-28 33.95 7917600 2009-05-29 22.02 22350700 2009-05-27 35.13 4701100 2009-05-28 21.63 9679800 2009-05-26 35.45 4572700 2009-05-27 21.74 9338200 2009-05-25 34.80 3652500 2009-05-26 21.64 8502900 

Проблема в том, что если я запустил это:

 keys = ['CBA.AX','NAB.AX'] mv = pandas.concat([data['CBA.AX'][650:660],data['NAB.AX'][650:660]], axis=1, keys=stocks,) 

создается следующий DateFrame:

  CBA.AX NAB.AX Close Volume Close Volume Date 2200-08-16 04:24:21.460041 NaN NaN NaN NaN 2203-05-13 04:24:21.460041 NaN NaN NaN NaN 2206-02-06 04:24:21.460041 NaN NaN NaN NaN 2208-11-02 04:24:21.460041 NaN NaN NaN NaN 2211-07-30 04:24:21.460041 NaN NaN NaN NaN 2219-10-16 04:24:21.460041 NaN NaN NaN NaN 2222-07-12 04:24:21.460041 NaN NaN NaN NaN 2225-04-07 04:24:21.460041 NaN NaN NaN NaN 2228-01-02 04:24:21.460041 NaN NaN NaN NaN 2230-09-28 04:24:21.460041 NaN NaN NaN NaN 2238-12-15 04:24:21.460041 NaN NaN NaN NaN 

Кто-нибудь знает, почему это может быть так?

В другом пункте: существуют ли библиотеки python, которые извлекают данные из yahoo и нормализуют их?

Приветствия.

EDIT: Для справки:

 data = { 'CBA.AX': <class 'pandas.core.frame.DataFrame'> DatetimeIndex: 2313 entries, 2011-12-29 00:00:00 to 2003-01-01 00:00:00 Data columns: Close 2313 non-null values Volume 2313 non-null values dtypes: float64(1), int64(1), 'NAB.AX': <class 'pandas.core.frame.DataFrame'> DatetimeIndex: 2329 entries, 2011-12-29 00:00:00 to 2003-01-01 00:00:00 Data columns: Close 2329 non-null values Volume 2329 non-null values dtypes: float64(1), int64(1) } 

  • Фиксация datareader panda от финансов yahoo с Enthought Canopy
  • Как правильно использовать Selenium
  • Использование BeautifulSoup для поиска через Yahoo Finance
  • Как получить «USDJPY» (курсы валют) с помощью pandas и yahoo finance?
  • Yahoo финансы ichart наличие услуг
  • Как понять этот необработанный HTML-код Yahoo! Финансы при извлечении данных с помощью Python?
  • Python и Yahoo финансы странные "YQLQueryError (ответ )" get_historical
  • 2 Solutions collect form web for “concat pandas DataFrame по индексам таймсерий”

    Можно читать данные с помощью панд и конкатенировать их.

    Сначала импортируйте данные

     In [449]: import pandas.io.data as web In [450]: nab = web.get_data_yahoo('NAB.AX', start='2009-05-25', end='2009-06-05')[['Close', 'Volume']] In [451]: cba = web.get_data_yahoo('CBA.AX', start='2009-05-26', end='2009-06-08')[['Close', 'Volume']] In [453]: nab Out[453]: Close Volume Date 2009-05-25 21.15 9685100 2009-05-26 21.64 8541900 2009-05-27 21.74 9042900 2009-05-28 21.63 9701000 2009-05-29 22.02 14665700 2009-06-01 22.52 6782000 2009-06-02 22.80 10473400 2009-06-03 23.11 9931400 2009-06-04 22.21 17869000 2009-06-05 21.95 8214300 In [454]: cba Out[454]: Close Volume Date 2009-05-26 35.45 4529600 2009-05-27 35.13 4521500 2009-05-28 33.95 7945400 2009-05-29 35.14 12548500 2009-06-01 36.16 4509400 2009-06-02 36.33 4304900 2009-06-03 36.80 4845400 2009-06-04 36.79 4592300 2009-06-05 36.51 4417500 2009-06-08 36.51 0 

    Затем объедините его:

     In [455]: keys = ['CBA.AX','NAB.AX'] In [456]: pd.concat([cba, nab], axis=1, keys=keys) Out[456]: CBA.AX NAB.AX Close Volume Close Volume Date 2009-05-25 NaN NaN 21.15 9685100 2009-05-26 35.45 4529600 21.64 8541900 2009-05-27 35.13 4521500 21.74 9042900 2009-05-28 33.95 7945400 21.63 9701000 2009-05-29 35.14 12548500 22.02 14665700 2009-06-01 36.16 4509400 22.52 6782000 2009-06-02 36.33 4304900 22.80 10473400 2009-06-03 36.80 4845400 23.11 9931400 2009-06-04 36.79 4592300 22.21 17869000 2009-06-05 36.51 4417500 21.95 8214300 2009-06-08 36.51 0 NaN NaN 

    Попробуйте присоединиться к внешнему.

    Когда я работаю с несколькими запасами, у меня обычно будет рамка под названием «open high, low, close, etc» со столбцом в виде тикера. Если вам нужна одна структура данных, я бы использовал для этого Панели.

    для данных Yahoo вы можете использовать pandas:

     import pandas.io.data as data spy = data.DataReader("SPY","yahoo","1991/1/1") 
    Interesting Posts

    Сортировка списка Python в зависимости от длины строки

    Создание HTML в python

    Python с matplotlib – повторное использование функций рисования

    Каков самый независимый от платформы и Python способ сделать быстрый цикл для использования в Python?

    Множество массивов NumPy с использованием None

    Все экземпляры класса имеют такой же диктант, как и атрибут в Python 3.2

    Python запрещает DataFrame Pandas

    Ошибка: команда 'gcc' не удалась с условием завершения при установке psycopg2

    Как подключиться к улью с помощью python pyhs2?

    можете ли вы добавить функциональность HTTPS на веб-сервер флипсы python?

    Django: произвольное количество неназванных параметров urls.py

    Циркулярные простые числа Неправильная выходная программа Python

    Функциональное дополнение / расширение

    Сортировка массива numpy другим массивом вдоль определенной оси

    Принудительно / убедитесь, что атрибуты класса python имеют определенный тип

    Python - лучший язык программирования в мире.