Pandas DataFrame для Python - PullRequest
       40

Pandas DataFrame для Python

0 голосов
/ 20 июня 2020

У меня есть следующий код:

import pandas as pd
import json 
from requests import request  
from urllib.request import urlopen  


List_of_FRED_IDs=['CPIAUCSL','A191RL1Q225SBEA','INDPRO']
API_key= "123456789ABCDEFGHIJK"
max_return= 5
def Fred_Values():
    global List_of_FRED_IDs
    Final_Fred_Values={}
    for i in List_of_FRED_IDs:
        final_url= "https://api.stlouisfed.org/fred/series/observations?series_id=" + str(i) + "&api_key=" + API_key + "&file_type=json&sort_order=desc&limit="+ str(max_return)
        page = urlopen(final_url)
        data= json.load(page)
        df = pd.DataFrame(data['observations'])
        print(df)

Fred_Values()

И он дает мне следующий результат:

Вывод кода

Как мне установите код так, чтобы:

  1. Он давал мне только «дату» и «значение»;
  2. Я могу указать имя идентификатора в новом столбце; и
  3. Заголовок не повторяется (т.е. realtime_start, realtime_end печатается 3 раза)?

По сути, я хочу, чтобы это выглядело так:

Желаемый результат

Не могу понять ...

1 Ответ

0 голосов
/ 20 июня 2020

Вам просто нужно concat выходные значения правильно, например:

def Fred_Values():
    global List_of_FRED_IDs
    Final_Fred_Values={}
    f = []
    for i in List_of_FRED_IDs:
        final_url= "https://api.stlouisfed.org/fred/series/observations?series_id=" + str(i) + "&api_key=" + API_key + "&file_type=json&sort_order=desc&limit="+ str(max_return)
        page = urlopen(final_url)
        data= json.load(page)
        f.append(data['observations'])
    return pd.concat(f)
...