将DataFrames字典转换为xarray DataArray



有快速的方法吗?我从医生那里不太明白。

即如何将其转换为具有所有标签的3d xarray对象?

d = {x: pd.DataFrame(np.random.randn(4, 3)) for x in [1,2,3]}
def dict_of_df_to_xarray(d, key_name=None):
import xarray
keys = list(sorted(d.keys()))
df = d[keys[0]]
ind = df.index
if key_name is None:
key_name = 'key'
columns = df.columns
index_name = df.index.name
if index_name is None:
index_name = 'index'
column_name = df.columns.name
if column_name is None:
column_name = 'column'
df = xarray.DataArray(np.concatenate([d[k].values[:, :, None] for k in keys], axis=2), dims=[index_name, column_name,
key_name], coords={index_name: ind, column_name: columns, key_name: keys})
return df

这比看起来更容易!也许我们应该把它添加到文档中。。。

xr.Dataset(d).to_array()

最新更新