Package: drb-impl-eurostat
EurostatNode ImplementationThis drb-impl-eurostat module implements access to Eurostat data with DRB data model.Eurostat FactoryThe module implements the basic factory model defined in DRB in its node resolver. Based on the python entry point mechanism, this module can be dynamically imported into applications.The entry point group reference isdrb.impl.The implementation name iseurostat.The factory class is encoded intodrb_impl_eurostat.drb_impl_eurostat.The Eurostat factory creates aDrbEurostatServiceNodeif called with the path 'eurostat://' orDrbEurostatDateNodeif a dataset or tables code is given in the path 'eurostat://{code}'.NodesDrbEurostatServiceNodeRepresent a node for browsing Eurostat data.
Its attributetablescontain the list of all the available dataset and tables in the eurostat service.
Its children is a list ofDrbEurostatDataNodethat can be browsed by dataset or table code.
This node has no implementations.DrbEurostatDataNodeRepresent an Eurostat dataset or table.
Its attribute "columns" contain the list of the data available in this dataset or table. Its children is a list ofDrbEurostatRowNodethat can be browsed only by its index in the table.
A panda DataFrame representation is available using theget_impl(panda.core.frame.DataFrame)methodDrbEurostatRowNodeRepresent a single row of an eurostat dataset or table.
Its attribute "columns" contain the list of the data available in this row.
Its children is a list ofDrbEurostatValueNodethat can be browsed by index or name of the column.
This node has noimplementations.DrbEurostatValueNodeRepresent a single Eurostat cell value from a dataset or table.limitationsThe current version does not manage child modification and insertion.Using this moduleTo include this module into your project, thedrb-impl-eurostatmodule shall be referenced intorequirement.txtfile, or the following pip line can be run:pip install drb-impl-eurostatExamplesThis example create aDrbEurostatServiceNodeusing theDrbEurostatFactorythen look for tables containing the word 'crimes' using the attribute of the service:fromdrb_impl_eurostatimportDrbEurostatFactoryfactory=DrbEurostatFactory()service=factory.create('eurostat://')tables=service.get_attribute('tables')search='crimes'fortableintables:ifsearchintable[0].lower():print(table)Output :('Crimes recorded by the police by NUTS 3 regions', 'crim_gen_reg')
('Crimes recorded by the police by metropolitan regions', 'met_crim_gen')
('Crimes recorded by the police by other typologies', 'urt_crim_gen')
('Crimes recorded by the police by by offence category', 'crim_gen')
('Crimes recorded by the police by NUTS 3 regions', 'crim_gen_reg')
('Crimes recorded by the police: homicide in cities', 'crim_hom_city')
('Crimes recorded by the police (1950-2000)', 'crim_hist')We can get the table we want using its code and get a pandas' DataFrame representationfrompandas.core.frameimportDataFramefromdrb_impl_eurostatimportDrbEurostatFactorycode='crim_gen_reg'factory=DrbEurostatFactory()service=factory.create('eurostat://')table=service[code]print(table.get_impl(DataFrame))We can also put the code direcly in the path given to the factoryfrompandas.core.frameimportDataFramefromdrb_impl_eurostatimportDrbEurostatFactorycode='crim_gen_reg'factory=DrbEurostatFactory()table=factory.create('eurostat://'+code)print(table.get_impl(DataFrame))Output:unit        iccs geo\time   2010    2009   2008
0      NR    ICCS0101       AT   56.0    43.0   46.0
1      NR    ICCS0101      AT1   33.0    23.0   21.0
2      NR    ICCS0101     AT11    5.0     0.0    2.0
3      NR    ICCS0101     AT12   11.0     4.0    4.0
4      NR    ICCS0101     AT13   17.0    19.0   15.0
...   ...         ...      ...    ...     ...    ...
5581   NR  ICCS050211    UKN01  843.0  1025.0  987.0
5582   NR  ICCS050211    UKN02  434.0   443.0  476.0
5583   NR  ICCS050211    UKN03  454.0   525.0  549.0
5584   NR  ICCS050211    UKN04  358.0   340.0  336.0
5585   NR  ICCS050211    UKN05  630.0   643.0  608.0

[5586 rows x 6 columns]