Невозможно объединить данные из FRED.Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Невозможно объединить данные из FRED.

Сообщение Гость »


Следующий код работает с использованием метода pandas get_data_fred().

start = dt.datetime(2018, 1, 1) конец = dt.datetime(2022, 3, 28) stk_tickers = ["AAPL", "MSFT", "TSLA", "GOOG"] ccy_tickers = ["DEXJPUS", "DEXUSUK"] idx_tickers = ["SP500"] # , 'DJIA', 'VIXCLS'] stk_data = yf.download(stk_tickers, начало, конец) ccy_data = web.get_data_fred(ccy_tickers, начало, конец) idx_data = web.get_data_fred(idx_tickers, начало, конец) x_merged = stk_data['Adj Close'].merge(ccy_data, How='inner', left_index=True, right_index=True) x_data = x_merged.merge(idx_data, How='inner', left_index=True, right_index=True) x_data.head() И выдает следующее.


Изображение


Я попробовал использовать FredAPI, но получил сообщение об ошибке. Я распечатал отдельные фреймы данных, и кажется, что мне не хватает заголовка над возвращаемыми значениями.

start = dt.datetime(2018, 1, 1) конец = dt.datetime(2022, 3, 28) stk_tickers = ["AAPL", "MSFT", "TSLA", "GOOG"] ccy_tickers = ["DEXJPUS", "DEXUSUK"] idx_tickers = ["SP500"] # , 'DJIA', 'VIXCLS'] api_key_fred = os.getenv("API_KEY") fred = fa.Fred(api_key='МОЙ КЛЮЧ API НАПИСАНО ЗДЕСЬ ОБЫЧНЫМ ТЕКСТОМ - Я ПОПЫТАЛСЯ ИСПОЛЬЗОВАТЬ "api_key_fred" выше, но он его не принял) stk_data = yf.download(stk_tickers, начало, конец) ccy_data = fred.get_series('DEXJPUS', начало, конец) idx_data = fred.get_series('SP500', начало, конец) idx_data.columns = pd.MultiIndex.from_product([['SP500'],idx_data.columns]) ccy_data.head() #x_merged = stk_data['Adj Close'].merge(ccy_data, How='inner', left_index=True, right_index=True) #x_data = x_merged.merge(idx_data, How='inner', left_index=True, right_index=True) #x_data.head() Вот как выглядит фрейм данных при использовании Pandas.


Изображение


И вот что я получаю, когда использую get_data_fred().


Изображение


Я предполагаю, что проблема в заголовке. См. код ошибки ниже.

-------------------------------------------- ------------------------------- ValueError Traceback (самый последний вызов — последний) c:\Users\mannf\Documents\My Juypter Notebook.ipynb Ячейка 9, строка 2 16 #idx_data.columns = pd.MultiIndex.from_product([['SP500'],idx_data.columns]) 18 ccy_data.head() ---> 20 x_merged = stk_data['Adj Close'].merge(ccy_data, How='inner', left_index=True, right_index=True) 21 x_data = x_merged.merge(idx_data, How='inner', left_index=True, right_index=True) 22 x_data.head() Файл c:\Users\mannf\anaconda3\Lib\site-packages\pandas\core\frame.py:10093, в DataFrame.merge(self, right, How, on, left_on, right_on, left_index, right_index, sort, суффиксы , копирование, индикатор, проверка) 10074 @Замена("") 10075 @Appender(_merge_doc, отступы=2) 10076 определение слияния( (...) 10089 проверить: ул | Нет = Нет, 10090) -> Кадр данных: 10091 из слияния импорта pandas.core.reshape.merge > 10093 вернуть слияние( 10094 себя, 10095 верно, 10096 как=как, 10097 вкл=вкл, 10098 left_on=left_on, 10099 right_on=right_on, 10100 левый_индекс=левый_индекс, 10101 правый_индекс=правый_индекс, 10102 сортировка=сортировка, 10103 суффиксы=суффиксы, 10104 копировать=копировать, 10105 индикатор=индикатор, 10106 validate=проверить, 10107 ) Файл c:\Users\mannf\anaconda3\Lib\site-packages\pandas\core\reshape\merge.py:110, в merge(left, right, How, on, left_on, right_on, left_index, right_index, sort, суффиксы , копирование, индикатор, проверка) 93 @Substitution("\nleft: DataFrame или именованная серия") 94 @Appender(_merge_doc, отступы=0) 95 определенно слияние( (...) 108 проверить: ул | Нет = Нет, 109) -> Кадр данных: --> 110 оп = _MergeOperation( 111 осталось, 112 верно, 113 как=как, 114 вкл=вкл, 115 left_on=left_on, 116 право_вкл=право_вкл, 117 левый_индекс=левый_индекс, 118 правый_индекс=правый_индекс, 119 сортировка=сортировка, 120 суффиксов = суффиксы, 121 индикатор=индикатор, 122 проверить = проверить, 123 ) 124 вернуть op.get_result(копия=копия) Файл c:\Users\mannf\anaconda3\Lib\site-packages\pandas\core\reshape\merge.py:645, в _MergeOperation.__init__(self, left, right, How, on, left_on, right_on, axis, left_index , right_index, сортировка, суффиксы, индикатор, проверка) 628 по умолчанию __init__( 629 себя, Осталось 630: DataFrame | Ряд, (...) 642 проверить: ул | Нет = Нет, 643 ) -> Нет: 644 _left = _validate_operand(слева) --> 645 _right = _validate_operand(справа) 646 self.left = self.orig_left = _left 647 self.right = self.orig_right = _right Файл c:\Users\mannf\anaconda3\Lib\site-packages\pandas\core\reshape\merge.py:2422, в _validate_operand(obj) 2420 elif isinstance(obj, ABCSeries): 2421, если имя_объекта равно None: -> 2422 поднять ValueError («Невозможно объединить серию без имени») 2423 еще: 2424 вернуть obj.to_frame() ValueError: невозможно объединить серию без имени Как добавить это в фрейм данных?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»