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.
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.
Examples#
Basic usage:
index = "TP.ODEMGZS.BDTTOPLAM"
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('output.xlsx')
result.to_excel('output.xlsx')
Using multiple indexes and cache:
indexes = ("TP.ODEMGZS.BDTTOPLAM", "TP.ODEMGZS.ABD")
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('output.xlsx')
result.to_excel('output.xlsx')
Applying formulas and aggregation:
indexes = "TP.ODEMGZS.BDTTOPLAM"
result = get_series_exp(indexes, formulas="level", aggregation="sum")
print(result.data.head())
print(result.metadata)
result.write('output.xlsx')
result.to_excel('output.xlsx')