【问题标题】:How to get the xr.Dataset coordinates as string?如何将 xr.Dataset 坐标作为字符串获取?
【发布时间】:2020-12-22 08:51:35
【问题描述】:

我创建了一个 xarray.Dataset。在数据集中,我想获取某个坐标的列表。

示例代码如下所示。在代码中,数据集'ds'包含4个'MachineType',分别是'MC_A'、'MC_B'、'MC_C'和'MC_D'。 我想将它们作为字符串获取,以便最后一个 for 循环执行 'MC_A'、'MC_B'、'MC_C'、'MC_D'。

import xarray as xr
import numpy as np
import pandas as pd

x = np.linspace(0,1500,16)
y1 = np.random.random((1,1,1,1,1,1,6,len(x)))
y2 = np.random.random((1,1,1,1,1,1,6,len(x)))
y3 = np.random.random((1,1,1,1,1,1,6,len(x)))
y4 = np.random.random((1,1,1,1,1,1,6,len(x)))

da1 = xr.DataArray(y1, dims=('MachineID','MachineType','Year','Month','Compensation','Axis','SensorID','Pos'),
                       coords={'MachineID':['MC_A'],'MachineType':['Car'],'Year':['2020'],'Month':['Aug'],'Compensation':[1],
                            'Axis':['X'],'SensorID':range(6),'Pos':x},
                       name='val')

da2 = xr.DataArray(y2, dims=('MachineID','MachineType','Year','Month','Compensation','Axis','SensorID','Pos'),
                       coords={'MachineID':['MC_B'],'MachineType':['Car'],'Year':['2020'],'Month':['Aug'],'Compensation':[1],
                            'Axis':['X'],'SensorID':range(6),'Pos':x},
                       name='val')

da3 = xr.DataArray(y3, dims=('MachineID','MachineType','Year','Month','Compensation','Axis','SensorID','Pos'),
                       coords={'MachineID':['MC_C'],'MachineType':['Train'],'Year':['2020'],'Month':['Aug'],'Compensation':[1],
                            'Axis':['X'],'SensorID':range(6),'Pos':x},
                       name='val')

da4 = xr.DataArray(y4, dims=('MachineID','MachineType','Year','Month','Compensation','Axis','SensorID','Pos'),
                       coords={'MachineID':['MC_D'],'MachineType':['Train'],'Year':['2020'],'Month':['Aug'],'Compensation':[1],
                            'Axis':['X'],'SensorID':range(6),'Pos':x},
                       name='val')

#%%
df = pd.concat([da1.to_dataframe(), da2.to_dataframe(), da3.to_dataframe(), da4.to_dataframe()])
ds=xr.Dataset.from_dataframe(df)
ds


#%% This part is not working as I want
for machineid in ds['MachineID']:
    print(machineid)

【问题讨论】:

    标签: python dataset python-xarray


    【解决方案1】:

    只需在打印命令中添加.values,并将类型更改为str

    for machineid in ds['MachineID']:
        print(str(machineid.values))
    

    【讨论】:

      猜你喜欢
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 2012-09-02
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多