2

我需要从欧洲央行获得美元/欧元和瑞士法郎/欧元的最新汇率。推荐的方法是什么?

版本 1:尝试过 pandasdmx 但不知道提取值的最有效方法:

ecb = sdmx.Request("ECB")
parameters = {
    "startPeriod": "2021-12-29",
    "endPeriod": "2021-12-29",
}
data_response = ecb.data(
    resource_id="EXR",
    key={"CURRENCY": ["CHF", "USD"]},
    params=parameters,
)

如何解析 data_response 以获取 USD 和 CHF 的值?

版本 2:我发现的另一种方法是访问

request_url = "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"

解析 XML 很容易,但第一个版本似乎是更新的版本。

有什么想法吗?

4

1 回答 1

1

你可以做

data = data_response.to_pandas()
data

获得熊猫系列的结果:

FREQ  CURRENCY  CURRENCY_DENOM  EXR_TYPE  EXR_SUFFIX  TIME_PERIOD
D     CHF       EUR             SP00      A           2021-12-29     1.0380
      USD       EUR             SP00      A           2021-12-29     1.1303
Name: value, dtype: float64

Series的值是data您所追求的两种汇率。前面的所有字段都是多索引的一部分,因此要获得 CHF,您可以使用

data[('D', 'CHF', 'EUR', 'SP00', 'A', '2021-12-29')]

这将返回

1.038

或者你可以使用.iloc

data.iloc[0]

对于瑞士法郎,data.iloc[1]对于美元

于 2022-01-03T22:10:41.890 回答