【问题标题】:Remap 2-d pandas dataframe to 3-d xarray将 2-d pandas 数据帧重新映射到 3-d xarray
【发布时间】:2019-12-08 02:40:19
【问题描述】:

我目前有一个大的时间序列值(1 年或更长时间)的 2-d pandas 数据框,我想将其重新映射到 3-d xarray。 pandas 数据帧有一个 column_id,它对应于另一个参考数据帧中的 (lat, lon) 坐标。

在 xarray 中是否有任何固有的功能可以实现这一点?

【问题讨论】:

  • 您可能需要在您的问题中添加更多信息,以帮助其他人知道您到底想要做什么。此外,您通常想表明您已经尝试过某事并阐明为什么它没有奏效。也许您可以向我们展示您的数据集示例以及您想要的输出。

标签: python pandas dataframe multidimensional-array python-xarray


【解决方案1】:

据我所知,最佳实践是使用 .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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
相关资源
最近更新 更多