我有一个 xarray 数据集,其中包含许多 dataArray。这些 dataArray 中的每一个都有一个 .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' object has no attribute 'attrs'
如果我改为尝试,
for ii in dataSet.data_vars:
print(dataSet.ii.attrs)
我得到 AttributeError: 'Dataset' object has no attribute 'ii'
看起来 python 试图将 'ii' 作为 DataArray 名称而不是实际存储为 ii 下的字符串的 dataArray 名称读取。我怎样才能遍历所有的 dataArrays 并打印出每个的 [dataArray].attrs?
最佳答案
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 打印所有变量/属性。关于python - 循环遍历 xarray 数据集中的 dataArray 属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42805090/