具有空变量和 0 维对象数据帧的 xarray 和 netCDF 文件
xarray and netCDF file with empty variables and 0-dimensional object dataframe
我正在尝试使用 xarray
.
将一些 .nc 文件转换为 pandas
数据帧
这是 netCDF 文件之一:
代码:
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,好像不是"empty"。
这里有什么问题?
您的数据集似乎设置了层次结构 groups. Xarray's open_dataset
功能仅支持一次打开一个组。所以你一次只需要打开一个组。类似于:
xr.open_dataset("MISR_AM1_AS_AEROSOL_P006_O094165_F13_0023.nc", group='4.4_KM_PRODUCTS')
一般来说,to_dataframe
方法对您的数据集的实用性有限,因为将 6 个维度折叠成一个索引会很漂亮 clunky/inefficient。
您可以使用 netcdf4 数据集检查 nc 文件。这让您深入了解包括组在内的完整结构。
我正在尝试使用 xarray
.
pandas
数据帧
这是 netCDF 文件之一:
代码:
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,好像不是"empty"。
这里有什么问题?
您的数据集似乎设置了层次结构 groups. Xarray's open_dataset
功能仅支持一次打开一个组。所以你一次只需要打开一个组。类似于:
xr.open_dataset("MISR_AM1_AS_AEROSOL_P006_O094165_F13_0023.nc", group='4.4_KM_PRODUCTS')
一般来说,to_dataframe
方法对您的数据集的实用性有限,因为将 6 个维度折叠成一个索引会很漂亮 clunky/inefficient。
您可以使用 netcdf4 数据集检查 nc 文件。这让您深入了解包括组在内的完整结构。