python - 带有空变量和 0 维对象数据框的 xarray 和 netCDF 文件

标签 python pandas netcdf python-xarray

我正在尝试使用 xarray 将一些 .nc 文件转换为 pandas 数据帧。

这是 netCDF 文件之一:

ftp://l5ftl01.larc.nasa.gov/MISR/MIL2ASAE.003/2017.08.31/MISR_AM1_AS_AEROSOL_P006_O094165_F13_0023.nc

代码:

import xarray as xr
ds = xr.open_dataset("MISR_AM1_AS_AEROSOL_P006_O094165_F13_0023.nc")
df = ds.to_dataframe()

错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\abreucbr\AppData\Local\Continuum\anaconda3\envs\py36\lib\site-packages\xarray\core\
dataset.py", line 3088, in to_dataframe
    return self._to_dataframe(self.dims)
  File "C:\Users\abreucbr\AppData\Local\Continuum\anaconda3\envs\py36\lib\site-packages\xarray\core\
dataset.py", line 3078, in _to_dataframe
    index = self.coords.to_index(ordered_dims)
  File "C:\Users\abreucbr\AppData\Local\Continuum\anaconda3\envs\py36\lib\site-packages\xarray\core\
coordinates.py", line 80, in to_index
    raise ValueError('no valid index for a 0-dimensional object')
ValueError: no valid index for a 0-dimensional object

例如,如果我检查 ds 变量,

ds.variables

我明白了

Frozen(OrderedDict())

.nc 文件有几 MB,因此它看起来并不“空”。

这里有什么问题吗?

最佳答案

您的数据集似乎设置为 groups 的层次结构。 Xarray 的 open_dataset功能仅支持一次打开一个组。因此,您一次只需打开一组。像这样的东西:

xr.open_dataset("MISR_AM1_AS_AEROSOL_P006_O094165_F13_0023.nc", group='4.4_KM_PRODUCTS')

一般来说,to_dataframe 方法对数据集的实用性有限,因为将 6 个维度折叠成单个索引将非常笨重/低效。

关于python - 带有空变量和 0 维对象数据框的 xarray 和 netCDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54809462/

相关文章:

python - NetCDF:如何在每个时间步编写脚本?

python - 通过Python读取.nc文件

python - 连接点和区间数据

python - MySQL 连接错误 Python、Flask、MySQL

python - 有没有办法将仅包含一个元素的列表与列表的所有其他元素组合起来?

python - 默认情况下 DB API 2.0 自动提交关闭的理由?

python pandas从多个子组中选择顶部 'n'

data-science - 有没有办法在 Nim 中使用 NetCDF 文件?

Python Pandas Drop 在使用 drop 时重新排序我的数据框

python - 如何在Python中从多列中的行组中找到2个最大值,并在输出中显示其行索引和列索引