据我所知,最佳实践是使用 .set_index() 在 pandas 中实现多索引,然后使用 .to_xarray() 将其转换为 xarray 数据集。
df = pd.DataFrame([('falcon', 'bird', 'predator', 389.0, 2),
('parrot', 'bird', 'prey', 24.0, 2),
('lion', 'mammal', 'predator', 80.5, 4),
('monkey', 'mammal', 'prey', np.nan, 4)],
columns=['name', 'class', 'diet', 'max_speed', 'num_legs'])
df.set_index(['name', 'class' , 'diet'], inplace=True)
myArray = df.to_xarray()
print(myArray)
结果:
<xarray.Dataset>
Dimensions: (class: 2, diet: 2, name: 4)
Coordinates:
* name (name) object 'falcon' 'lion' 'monkey' 'parrot'
* class (class) object 'bird' 'mammal'
* diet (diet) object 'predator' 'prey'
Data variables:
max_speed (name, class, diet) float64 389.0 nan nan nan ... 24.0 nan nan
num_legs (name, class, diet) float64 2.0 nan nan nan ... nan 2.0 nan nan