get_series_exp Function#

The get_series_exp function fetches economic data series from a specified API and returns it formatted as a pandas DataFrame. This function offers various parameters to fine-tune the data retrieval process.

evdspy.get_series_exp(index: str | tuple[Any, ...], start_date: str = '01-01-2000', end_date: str = '01-01-2100', frequency: Literal['monthly', 'weekly', 'annually', 'semimonthly', 'semiannually', 'business', None] = None, formulas: Literal['level', 'percentage_change', 'difference'] | None = None, aggregation: Literal['avg', 'min', 'max', 'first', 'last', 'sum', None] | None = None, cache: bool = False, meta_cache: bool = False, proxy: str | None = None, proxies: dict[str, str] | None = None, debug: bool = False, api_key: str | None = None) Result[source]#

Retrieves economic data series from the specified API and returns it as a pandas DataFrame. Parameters ———- index : str or tuple of str

The identifier(s) for the data series to fetch. Can be a single string for one series or a tuple of strings for multiple series.

start_datestr, optional

The start date for the data retrieval in ‘DD-MM-YYYY’ format, by default calls default_start_date_fnc().

end_datestr, optional

The end date for the data retrieval in ‘DD-MM-YYYY’ format, by default calls default_end_date_fnc().

frequencystr, optional

The frequency at which data should be retrieved. monthly | weekly | annually | semimonthly | semiannually | business

formulasstr or tuple of str, optional

The computation methods to apply to the data series level | percentage_change | difference | year_to_year_percent_change | year_to_year_differences

aggregationstr or tuple of str, optional

The aggregation methods to apply to the data, similar to formulas. avg |min | max | first | last | sum

cachebool, optional

If True, uses cached data when available to speed up the data retrieval process, by default False.

meta_cachebool, optional

If True, uses cached data for metadata when available to speed up the data retrieval process, by default False.

proxystr, optional

The URL of the proxy server to use for the requests, by default None.

proxiesdict, optional

A dictionary of proxies to use for the request, by default None.

debugbool, optional

If True, runs the function in debug mode, providing additional debug information without making a real API request, by default False.

api_keystr, optional

The API key required for accessing the data, by default None. When it was given for the first time it will be saved to a file for the subsequent requests. alternatively it may be saved by save(“APIKEY”) function or $ evdspy save [from console]

Returns#

pd.DataFrame

A pandas DataFrame containing the retrieved data series.

Raises#

ValueError

If an invalid API key is provided or required parameters are missing.

Parameters#

indexstr or tuple

Identifier(s) for the data series to fetch. This can be a single string for one series or a tuple of strings for multiple series.

start_datestr, optional

The start date for the data retrieval in ‘DD-MM-YYYY’ format. By default, this calls default_start_date_fnc().

end_datestr, optional

The end date for the data retrieval in ‘DD-MM-YYYY’ format. By default, this calls default_end_date_fnc().

frequencystr, optional

The frequency at which data should be retrieved. Options include:

  • daily (1): Data retrieved every day.

  • business (2): Data retrieved only on business days.

  • weekly (3): Data retrieved weekly on Fridays.

  • semimonthly (4): Data retrieved twice a month.

  • monthly (5): Data retrieved once a month.

  • quarterly (6): Data retrieved every quarter.

  • semiannually (7): Data retrieved twice a year.

  • annual/annually (8): Data retrieved once a year.

formulasstr or tuple, optional

Computation methods to apply to the data series. Options include:

  • level (0): Raw data values.

  • percentage change (1): Percent change between consecutive data points.

  • difference (2): Difference between consecutive data points.

  • year to year percent change (3): Percent change from the same date in the previous year.

  • year to year differences (4): Difference from the same date in the previous year.

  • percentage change compared to end-of-previous year (5): Percent change relative to the end of the previous year.

  • difference compared to end-of-previous year (6): Difference relative to the end of the previous year.

  • moving average (7): Moving average of data points.

  • moving sum (8): Moving sum of data points.

aggregationstr or tuple, optional

Aggregation methods to apply to the data. Options include:

  • avg: Average value over the specified period.

  • min: Minimum value over the specified period.

  • max: Maximum value over the specified period.

  • first: First value within the specified period.

  • last: Last value within the specified period.

  • sum: Sum of all values within the specified period.

cachebool, optional

If True, uses cached data when available to speed up the data retrieval process. Default is False.

meta_cachebool, optional

If True, uses cached metadata when available to speed up the data retrieval process. Default is False.

proxystr, optional

The URL of the proxy server to use for the requests. Default is None.

proxiesdict, optional

A dictionary of proxies to use for the request. Default is None.

debugbool, optional

If True, runs the function in debug mode, providing additional debug information without making a real API request. Default is False.

api_keystr, optional

The API key required for accessing the data. Initially, it can be saved using the save("APIKEY") function or via command line with $ evdspy save.

Returns#

Result Class

An object containing the following attributes:

datapd.DataFrame

The retrieved data series.

metadatapd.DataFrame

Metadata associated with the data series, if available.

writeCallable

Function to create an Excel file with data and metadata in two sheets.

to_excelCallable

Same as write, for compatibility with pandas’ to_excel function.

Raises#

ValueError

Raised if an invalid API key is provided or required parameters are missing.

Creating a .env File#

Create a .env file in the root directory of your project and define your proxies as shown below:

# Example .env file content
EVDS_API_KEY=AxByCzDsFoGmHeIgJaKrLbMaNgOe

Examples#

Basic usage:

from evdspy import get_series_exp

template = """

TP.KREDI.L002
TP.BFTUKKRE.L004
TP.BFTUKKRE.L056
TP.BFTUKKRE.L193
TP.BFTUKKRE.L234
"""

result = get_series_exp(index, start_date="01-01-2020", end_date="01-01-2021", frequency="monthly")
print(result.data.head())
print(result.metadata)
result.write('output1.xlsx')
result.to_excel('output2.xlsx')

Using multiple indexes and cache:

from evdspy import get_series_exp

indexes = ("TP.ENFBEK.PKA12ENF", "TP.ENFBEK.IYA12ENF")
result = get_series_exp(indexes, start_date="01-01-2020", end_date="01-01-2021", frequency="monthly")
print(result.data.head())
print(result.metadata)
result.write('output1.xlsx')
result.to_excel('output2.xlsx')

Applying formulas and aggregation:

from evdspy import get_series_exp

template = """

TP.KREDI.L002
TP.BFTUKKRE.L004
TP.BFTUKKRE.L056
TP.BFTUKKRE.L193
TP.BFTUKKRE.L234
"""

result = get_series_exp(template, formulas="level", aggregation="sum")
print(result.data.head())
print(result.metadata)
result.write('output.xlsx')
result.to_excel('output2.xlsx')