如何在pandasdmx中设置属性

2024-06-16 09:21:53 发布

您现在位置:Python中文网/ 问答频道 /正文

“pandasdmx”documentation有一个如何设置维度的示例,但没有如何设置属性的示例。 我尝试将“key”传递给变量,但出现了一个错误。 也许设置属性需要不同的语法? 在示例代码的末尾,我打印了一个维度和属性列表

import pandasdmx as sdmx
import pandas as pd

ecb = sdmx.Request('ECB')
key = dict(FREQ=['M'], SEC_ITEM=['F51100'], REF_AREA = ['I8'], SEC_ISSUING_SECTOR = ['1000'])
params = dict(startPeriod='2010-02', endPeriod='2010-02')
data_msg = ecb.data('SEC', key=key, params=params)

data = data_msg.data[0]
daily = [s for sk, s in data.series.items() if sk.FREQ == 'M']
cur_df = pd.concat(sdmx.to_pandas(daily)).unstack()
print(cur_df.to_string())

flow_msg = ecb.dataflow()
dataflows = sdmx.to_pandas(flow_msg.dataflow)
exr_msg = ecb.dataflow('SEC')
exr_flow = exr_msg.dataflow.SEC
dsd = exr_flow.structure

dimen = dsd.dimensions.components
attrib = dsd.attributes.components
print(dimen)
print(attrib)

Tags: tokey示例pandasdata属性msgparams
1条回答
网友
1楼 · 发布于 2024-06-16 09:21:53

为了澄清,您在这里要问的不是“如何设置属性”,而是“如何在将SDMX数据集转换(或“写入”)为数据帧时包含属性”

使用^{},ª参见文档中^{} function属性参数。当您将DataSet对象作为第一个参数传递时,to_pandas()最终将调用此函数

在示例代码中,关键行是:

sdmx.to_pandas(daily)

您可以尝试:

sdmx.to_pandas(data_msg.data[0], attributes="dsgo")

根据文档,字符串"dsgo"表示“在附加列中包括dataset、series键、ggroup和o观察级别附加的所有属性。”


CharStylesdmx1pandaSDMX的分支,有许多增强功能和更常规的版本

相关问题 更多 >