【问题标题】:cannot convert xarray dataframe to pandas dataframe无法将 xarray 数据帧转换为 pandas 数据帧
【发布时间】:2021-09-15 05:07:11
【问题描述】:

我需要在 pandas 中使用一些 *.nc 文件,但我正在为转换而苦苦挣扎。 这是数据集 DS1:

<xarray.Dataset>
Dimensions:    (latitude: 51, longitude: 51, time: 47)
Coordinates:
  * longitude  (longitude) float32 15.1 15.2 15.3 15.4 ... 19.8 19.9 20.0 35.0
  * latitude   (latitude) float32 34.9 34.8 34.7 34.6 ... 30.1 30.0 9.9498e-40
  * time       (time) object 1981-01-01 02:00:00 ... -243069-06-09 17:00:00
Data variables:
    u10        (time, latitude, longitude) float32 nan nan nan ... nan nan nan
    v10        (time, latitude, longitude) float32 nan nan nan ... nan nan nan
    t2m        (time, latitude, longitude) float32 nan nan nan ... nan nan nan
    tp         (time, latitude, longitude) float32 nan nan nan ... nan nan nan
Attributes:
    Conventions:  CF-1.6
    history:      2021-07-03 16:40:01 GMT by grib_to_netcdf-2.20.0: /opt/ecmw...

DS1.to_dataframe() 

我得到错误:

NotImplementedError: > 1 ndim Categorical are not supported at this time

我担心time 坐标-243069-06-09 17:00:00 是导致此错误的原因,因为它完全超出了我在文件中预期的范围。

Here is a link to original file.

感谢任何帮助。

【问题讨论】:

  • 我用你提供的文件试了一下,它没有任何错误。您是否在尝试转换之前转换文件的内容?

标签: python pandas python-xarray


【解决方案1】:

最终我通过简单地过滤掉负时间维度来解决这个问题 DS1.where(DS1.time&gt;cftime.DatetimeGregorian(1980, 1, 1,1),drop=True).to_dataframe()

不确定它是如何创建这个额外维度的,但它解决了我的问题。

感谢您的时间和精力@timus。

【讨论】:

    猜你喜欢
    • 2020-07-24
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多