无法将 xarray 数据帧转换为熊猫数据帧

时间:2021-07-03 18:07:47

标签: python pandas python-xarray

我需要在 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.

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

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

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

感谢@timus 付出的时间和精力。