This is a patch release to enable compatibility with pandas v1.0
.
It also adds experimental support of the frictionless datapackage
format.
- #324 Enable compatibility with pandas v1.0
- #323 Support import/export of frictionless
datapackage
format
- New feature: downscale regional timeseries data to subregions using a proxy variable
- Improved features to support aggregation by sectors and regions: support weighted-average, min/max, etc. (including a reworked tutorial)
- Streamlined I/O: include
meta
table when reading from/writing to xlsx files - Standardized logger behaviour
PR #305 changed the default
behaviour of aggregate_region()
regarding the treatment of components at the
region-level. To keep the previous behaviour, add components=True
.
PR #315 changed the return
type of aggregate[_region]()
to an IamDataFrame
instance.
To keep the previous behaviour, add timeseries()
.
The object returned by [check_]aggregate[_region]()
now includes both the
actual and the expected value as a pd.DataFrame
instance.
The function check_internal_consistency()
now returns a concatenated dataframe
rather than a dictionary and also includes optional treatment of components
(see paragraph above). To keep the previous behaviour, add components=True
.
- #315 Add
equals()
feature, change return types of[check_]aggregate[_region]()
, rework aggregation tutorial - #314 Update IPCC color scheme colors and add SSP-only colors
- #313 Add feature to
downscale
timeseries data to subregions using another variable as proxy - #312 Allow passing list of variables to
aggregate
functions - #305 Add
method
andweight
options to the (region) aggregation functions - #302 Rework the tutorials
- #301 Bugfix when using
to_excel()
with apd.ExcelWriter
- #297 Add
empty
attribute, better error fortimeseries()
on empty dataframe - #295 Include
meta
table when writing to or reading fromxlsx
files - #292 Add warning message if
data
is empty at initialization (after formatting) - #288 Put
pyam
logger in its own namespace (see here) - #285 Add ability to fetch regions with synonyms from IXMP API
- Streamlined generation of quantitative metadata indicators from timeseries data using
set_meta_from_data()
- Better support for accessing public and private IIASA scenario explorer databases via the REST API
- More extensive documentation of the
pyam
data model and the IAMC format - Compatible with recent
pandas
v0.25
- #277 Restructure and extend the docs pages, switch to RTD-supported theme
- #275 Completely removes all features related to region plotting, notably
region_plot()
andread_shapefile()
- #270 Include variables with zeros in
stack_plot
(see #266) - #269 Ensure append doesn't accidentally swap indexes
- #268 Update
aggregate_region
so it can find variables below sub-cateogories too - #267 Make clear error message if variable-region pair is missing when
check_aggregate_region
is called - #261 Add a check that
keep
infilter()
is a boolean - #254 Hotfix for aggregating missing regions and filtering empty dataframes
- #243 Update
pyam.iiasa.Connection
to support all public and private database connections. DEPRECATED: the argument 'iamc15' has been deprecated in favor of names as queryable directly from the REST API. - #241 Add
set_meta_from_data
feature - #236 Add
swap_time_for_year
method and confirm datetime column is compatible with pyam features - #273 Fix several issues accessing IXMP API (passing correct credentials, improve reliability for optional fields in result payload)
- the
filters
argument inIamDataFrame.filter()
has been deprecated pd.date_time
now has experimental supported for time-related columns- plots now support the official IPCC scenario color palatte
- native support for putting legends outside of plot axes
- dataframes can now be initialized with default values, making reading raw datasets easier
- #228 Update development environment creation instructions and make pandas requirement more specific
- #219 Add ability to query metadata from iiasa data sources
- #214 Tidy up requirements specifications a little
- #213 Add support for IPCC colors, see the new tutorial "Using IPCC Color Palattes"
- #212 Now natively support reading R-style data frames with year columns like "X2015"
- #207 Add a
aggregate_region()
function to sum a variable from subregions and add components that are only defined at the region level - #202 Extend the
df.rename()
function with acheck_duplicates (default True)
validation option - #201 Added native support for legends outside of plots with
pyam.plotting.OUTSIDE_LEGEND
with a tutorial - #200 Bugfix when providing
cmap
andcolor
arguments to plotting functions - #199 Initializing an
IamDataFrame
accepts kwargs to fill or create from the data any missing required columns - #198 Update stack plot functionality and add aggregation tutorial. Also adds a
copy
method toIamDataFrame
. - #197 Added a
normalize
function that normalizes all data in a data frame to a specific time period. - #195 Fix filtering for
time
,day
andhour
to use genericpattern_match()
(if such a column exists) in 'year'-formmatted IamDataFrames - #192 Extend
utils.find_depth()
to optionally return depth (as list of ints) rather than assert level tests - #190 Add
concat()
function - #189 Fix over-zealous
dropna()
inscatter()
- #186 Fix over-zealous
dropna()
inline_plot()
, reworkas_pandas()
to (optionally) discover meta columns to be joined - #178 Add a kwarg
append
to the functionrename()
, change behaviour of mapping to only apply to data where all given columns are matched - #177 Modified formatting of time column on init to allow subclasses to avoid pandas limitation (https://stackoverflow.com/a/37226672)
- #176 Corrected title setting operation in line_plot function
- #175 Update link to tutorial in readme.md
- #174 Add a function
difference()
to compare two IamDataFrames - #171 Fix a bug when reading from an
ixmp.TimeSeries
object, refactor to mitigate circular dependency - #162 Add a function to sum and append timeseries components to an aggregate variable
- #152 Fix bug where scatter plots did not work with property metadata when using two variables (#136, #152)
- #151 Fix bug where excel files were not being written on Windows and MacOSX (#149)
- #145 Support full semantic and VCS-style versioning with
versioneer
- #132 support time columns using the
datetime
format and additionalstr
columns indata
- #114 extends
append()
such that data can be added to existing scenarios - #111 extends
set_meta()
such that it requires a name (not None) - #109 add ability to fill between and add data ranges in
line_plot()
- #104 fixes a bug with timeseries utils functions, ensures that years are cast as integers
- #101 add function
cross_threshold()
to determine years where a timeseries crosses a given threshold - #98 add a module to compute and format summary statistics for timeseries data (wrapper for
pd.describe()
- #95 add a
scatter()
chart in the plotting library using metadata - #94
set_meta()
can take pd.DataFrame (with columns['model', 'scenario']
) asindex
arg - #93 IamDataFrame can be initilialzed from pd.DataFrame with index
- #92 Adding
$
to the pseudo-regexp syntax inpattern_match()
, adds override option - #90 Adding a function to
set_panel_label()
as part of the plotting library - #88 Adding
check_aggregate_regions
andcheck_internal_consistency
to help with database validation, especially for emissions users - #87 Extending
rename()
to work with model and scenario names - #85 Improved functionality for importing metadata and bugfix for filtering for strings if
nan
values exist in metadata - #83 Extending
filter_by_meta()
to work with non-matching indices betweendf
and `data - #81 Bug-fix when using
set_meta()
with unnamed pd.Series and noname
kwarg - #80 Extend the pseudo-regexp syntax for filtering in
pattern_match()
- #73 Adds ability to remove labels for markers, colors, or linestyles
- #72 line_plot now drops NaNs so that lines are fully plotted
- #71 Line plots
legend
keyword can now be a dictionary of legend arguments - #70 Support reading of both SSP and RCP data files downloaded from the IIASA database.
- #66 Fixes a bug in the
interpolate()
function (duplication of data points if already defined) - #65 Add a
filter_by_meta()
function to filter/join a pd.DataFrame with an IamDataFrame.meta table