python - 如何在 pandasdmx 中设置属性
问题描述
“pandasdmx”文档有一个如何设置维度的示例,但没有如何设置属性。我尝试将“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)
解决方案
澄清一下,您在这里问的不是“如何设置属性”,而是“如何在将 SDMX 数据集转换(或“编写”)为熊猫数据帧时包含属性”。
使用sdmx1
,¹ 请参阅该函数的属性参数的文档。这是当您将 DataSet 对象作为第一个参数传递时最终调用的函数。write_dataset()
to_pandas()
在您的示例代码中,关键行是:
sdmx.to_pandas(daily)
您可以尝试:
sdmx.to_pandas(data_msg.data[0], attributes="dsgo")
根据文档,该字符串的"dsgo"
意思是“在附加列中包含附加在数据集、系列键、组和观察级别的所有属性。”</
p >
¹sdmx1
是pandaSDMX
具有许多增强功能和更常规版本的分支。
推荐阅读
- python - 用 python 运行 gdb
- go - 如何在 Go 的 envconfig 库中使用“默认”结构标记?
- c++ - 静态成员重载和覆盖如何在 C++ 结构中工作?
- recursion - XSLT/Saxon 中的尾调用优化?
- electron - “不允许加载本地资源”与电子应用程序中的文件图像 URL
- php - Codeigniter 单个数据提取错误与结果
- prometheus - PromQL:查找低于平均水平的向量元素
- django - Django Model Field - 无论如何定义一个存储对象的字段
- swift - 以编程方式从 UiView 推送新视图控制器的问题
- multiple-inheritance - 如何在多继承中合并属性