コード例 #1
0
ファイル: app.py プロジェクト: tylermneher/pandemicgoldprices
def coronavirus():
    my_key = "5d898dd8f945e9190745a8e4f666f64c"
    fred = Fred(api_key=my_key)
    import pandas as pd
    goldData = fred.get_series_latest_release('GOLDAMGBD228NLBM')
    dowData = fred.get_series_latest_release('DJIA')
    result = pd.concat([goldData, dowData], axis=1, sort=False)
    dgdata = result.apply (pd.to_numeric, errors='coerce')
    df = dgdata.dropna(how='any',axis=0)
    df['dowoverGold'] = df[1] / df[0]
    resultdata = df.tail(90)
    resultdata = resultdata.round(2)
    resultdata.drop(resultdata.columns[0], axis=1, inplace=True)
    resultdata.drop(resultdata.columns[0], axis=1, inplace=True)
    #resultdata.index.name = 'date'
    resultdata['date'] = resultdata.index
    resultdata['date'] = resultdata['date'].astype(str)
    rdata = resultdata.to_json(orient='records')
    #resultresultdata.itterrows()
    return render_template('coronavirus.html', data = rdata)
コード例 #2
0
ファイル: vix.py プロジェクト: dillongraveline/VIX-Cruncher
    def _risk_free_calc(self, date):
        try:
            fred = Fred(api_key=self._fred_api_key)
        except:
            print(
                "YOU NEED TO SET THE FRED API KEY USING THE SET_FRED_API_KEY METHOD"
            )

        # Obtain the yield curve CMT data from FRED
        one_month = fred.get_series_latest_release('DGS1MO').iloc[-1]
        three_month = fred.get_series_latest_release('DGS3MO').iloc[-1]
        six_month = fred.get_series_latest_release('DGS6MO').iloc[-1]
        one_year = fred.get_series_latest_release('DGS1').iloc[-1]
        two_year = fred.get_series_latest_release('DGS2').iloc[-1]
        three_year = fred.get_series_latest_release('DGS3').iloc[-1]
        five_year = fred.get_series_latest_release('DGS5').iloc[-1]

        days_array = [30.4167, 91.2501, 182.5, 365, 730, 1095, 1825]
        yield_array = [
            one_month, three_month, six_month, one_year, two_year, three_year,
            five_year
        ]

        # Cubic spline interpolation to derive the CMT rates for the near and next term maturities.
        tck = interpolate.splrep(days_array, yield_array, s=0)

        # Calculate days from date
        today = dt.datetime.now()
        day_delta = date - today
        days = day_delta.days

        # Back out interpolated yield
        y_new = interpolate.splev(days, tck)

        return y_new
コード例 #3
0
ファイル: fred.py プロジェクト: lemonsong/market_analysis
class FredClass:
    def __init__(self, FRED_API):
        self.fred = Fred(api_key=FRED_API)

    def search(self, search_text):
        self.search_df = self.fred.search(search_text)
        self.search_df['popularity'] = self.search_df['popularity'].astype(int)
        self.search_df = self.search_df.sort_values(by=['popularity'],
                                                    ascending=False)
        return self.search_df

    def fetch(self, metrics, start_date):
        self.metrics_df = pd.DataFrame()
        for metric in metrics:
            print(f'Fetch metric: {metric}')
            try:
                metrics_df_sub = self.fred.get_series_latest_release(
                    metric).to_frame()
                # TODO: append first then reset_index?
                metrics_df_sub.reset_index(drop=False, inplace=True)
                metrics_df_sub.columns = ['activity_date', 'value']
                metrics_df_sub[
                    'activity_date'] = metrics_df_sub.activity_date.dt.date
                metrics_df_sub['metric'] = metric
                print(metrics_df_sub.dtypes)
                self.metrics_df = self.metrics_df.append(metrics_df_sub)
            except ValueError:
                print(f'Skip metric: {metric}')
                continue
        self.metrics_df = self.metrics_df.loc[
            self.metrics_df.activity_date >= start_date]
        self.metrics_df = self.metrics_df[['metric', 'activity_date', 'value']]
        return self.metrics_df

    def get_metrics_info(self, metrics):
        info_df = pd.DataFrame()
        for metric in metrics:
            info_df_sub = self.fred.get_series_info(metric)
            info_df = info_df.append(info_df_sub, ignore_index=True)
        info_df = info_df[[
            'id', 'title', 'frequency', 'units', 'seasonal_adjustment',
            'popularity', 'notes'
        ]]
        info_df = info_df.rename(columns={'id': 'metric'})
        info_df['source'] = 'FRED'
        info_df['deprecated'] = False
        return info_df
コード例 #4
0
    'NewOrders',
    'NewOrders_NoDef',
    'Real_PCE',
    'Real_Imports',
    'Imports',
    'Wk_hrs_manu',
    'Wk_hrs_priv',
    'Tot_veh_sales',
    'Lt_wght_veh',
    'Heavy_trucks',
]

d = {}  #dict of data

for code, name in indics.items():
    d[name] = fred.get_series_latest_release(code)
    d[name] = d[name].resample('M').last()
    d[name] = d[name].interpolate(method='linear')

for i in non_stat:
    d[i] = d[i].diff(12)

frames = [d[i] for i in indics.values()]
columns = [i for i in indics.values()]

baf = pd.concat(frames, keys=columns, join='outer', axis=1)
baf = baf.fillna(method='ffill')

#ISM Manufacturing PMI Composite Index
start_date = '01/01/1980'
vendor_ticker = 'ISM/MAN_PMI'
コード例 #5
0
# NBER based Recession Indicator: `USRECP`
#
# We form the list of economic series to pull from FRED:
us_unemploy_api = ["UNRATE"]
state_unemploy_api_list = state_code_df['state_abbrev'].astype(str) + "UR"
state_unemploy_api_list = state_unemploy_api_list.tolist()
all_unemploy_api = us_unemploy_api + state_unemploy_api_list
other_api_list = ["IRLTLT01USM156N", "CSUSHPISA", "GDPC1", "CPIAUCSL", "USRECP"]
all_api = other_api_list + all_unemploy_api

# Upon setting up the API credentials, we pull data from FRED and nest it in DICTIONARY with format `{series_id : series_data_df}`. A dictionary is much preferred to dynamically creating objects through a loop since they are unnecessary, hard to create (use exec or globals()), and I can't use them dynamically anyway. But if you really want to, use `globals()`.
#
# Sometimes the API reaches 504 Gateway Timeout error and yells at you. Just keep trying:
api_key = "85482ff982c94bb52ca2ae28568ee970"
fred = Fred(api_key=api_key)
dict_series_values = {series: fred.get_series_latest_release(series).to_frame() for series in all_api}
# We clean the dataframes and drop all observations that are not between 2001 and 2012:
for series, df in dict_series_values.items():
    df.columns = [series]
    df.reset_index(level=0, inplace=True)
    df.rename(columns={"index": "date"}, inplace = True)
    pd.to_datetime(df['date'], format = "%Y-%m-%d")
    dict_series_values[series] = df.loc[(df['date'] >= "2001-01-01") & (df['date'] <= "2012-12-31")]

econ_df = pd.concat([df.set_index('date') for (series, df) in dict_series_values.items()], axis=1, join='outer').reset_index()

# Merge IRI week number ID's with economic dataframe
econ_df = pd.merge_asof(econ_df, week_df, direction='nearest')
econ_df.rename(columns={"week_id": "econ_week_id"}, inplace = True)

# Import into MySQL server
コード例 #6
0
import matplotlib.pyplot, pandas
from fredapi import Fred
import urllib, urllib2


fred = Fred(api_key='f04a131fa269983c05a15f54edf809d5')
gdp_data = fred.get_series_latest_release('GDP')
data.tail()
    
def economicGraph():
    

#print(result)