循环遍历xarray数据集

时间:2017-03-15 08:58:48

标签: python python-3.x python-xarray

我有一个xarray数据集,其中包含许多dataArrays。这些dataArrays中的每一个都有一个.attrs,其中包含一个有序的dict,其中包含每个dataArray的描述和单位。

我想循环遍历dataSet中的每个dataArray并打印出每个.attrs。

for ii in dataSet.data_vars:
    print(ii)

将为我提供每个dataArray的名称。但是,当我尝试

for ii in dataSet.data_vars:
    print(ii.attrs)

我得到了AttributeError:' str'对象没有属性' attrs' 如果我尝试,

for ii in dataSet.data_vars:
     print(dataSet.ii.attrs)

我得到了AttributeError:'数据集'对象没有属性' ii'

似乎python正试图阅读' ii'作为DataArray名称,而不是在ii下存储为字符串的实际dataArray名称。如何循环遍历所有dataArrays并打印出每个数据的[dataArray] .attrs?

1 个答案:

答案 0 :(得分:3)

data_vars是一个字典,您可以迭代键值对。

for varname, da in dataSet.data_vars.items():
    print(da.attrs)

您最后一个示例也可以,但您需要使用ii作为字典键:

for ii in dataSet.data_vars:
    print(dataSet[ii].attrs)

注意,如果您使用的是最新版本的xarray,您还可以使用dataSet.info() method打印所有变量/属性。

相关问题