Source code for seriesbr.seriesbr
import re
from pandas import concat, to_datetime
from . import bcb, ipea
from .helpers.utils import return_codes_and_names
[docs]def get_series(*codes, start=None, end=None, **kwargs):
"""
Get multiple series from both BCB or IPEA.
Parameters
----------
codes : dict, str, int
Dictionary like {"name1": cod1, "name2": cod2}
or a bunch of code numbers, e.g. cod1, cod2.
start : str, optional
Initial date, month or day first.
end : str, optional
End date, month or day first.
last_n : int, optional
Ignore other arguments and get last n observations.
**kwargs
Passed to pandas.concat.
Returns
-------
pandas.DataFrame
A DataFrame with series' values.
Examples
--------
>>> seriesbr.get_series("BM12_CRLIN12", 20786, start="2015", end="2015")
BM12_CRLIN12 20786
Date
2015-01-01 4.41 26.91
2015-02-01 4.42 27.95
2015-03-01 4.38 27.72
2015-04-01 4.57 28.93
2015-05-01 4.68 29.61
2015-06-01 4.59 30.31
2015-07-01 4.77 31.24
2015-08-01 4.91 31.65
2015-09-01 4.92 31.49
2015-10-01 5.02 32.64
2015-11-01 5.22 33.31
2015-12-01 5.28 31.64
"""
codes, names = return_codes_and_names(*codes)
series = []
for code, name in zip(codes, names):
if re.search(r"^\d+$", str(code)):
df = bcb.get_serie(code, name, start, end)
df.index = to_datetime(df.index, format="%d/%m/%Y")
else:
df = ipea.get_serie(code, name, start, end)
df.index = to_datetime(df.index, format="%Y-%m-%dT%H:%M:%S")
series.append(df)
return concat(series, axis="columns", **kwargs)