ValueError while saving xarray dataset to netcdf to add metadata沿着with pandas dataframe

4c8rllxm  于 2023-04-28  发布在  Etcd
关注(0)|答案(1)|浏览(124)

我想用pandas数据框附加一些 meta数据。元数据就像在保存数据框之前添加一些关于所有数据处理的描述。
我遇到了这个解决方案:https://stackoverflow.com/a/52546933/214526
所以,我尝试了以下几点:

xarrDS: xarray.Dataset = pdDF.to_xarray()
xarrDS.attrs["description"] = "Some description about data processing"
## here if I display xarrDS in the notebook, it shows the data correctly"

xarrDS.to_netcdf(path="processed_df.nc")

但是保存到netcdf会导致以下异常:
ValueError:使用序列设置数组元素
pandas dataframe没有任何NaN值。我在网上找不到任何相关的解决方案。我看到这篇文章也使用类似的代码保存它。
任何关于如何解决这个或替代解决方案(不使用额外的mlops库)来保存 meta数据的指针都将受到欢迎。
我的库版本如下:

pandas=1.5.3
xarray=2022.11.0
netcdf4=1.6.3
s6fujrry

s6fujrry1#

该错误的可能原因是,在你的pandas数据框中,你有一些类型为object的列,所以类似于带有字符串的列。因此,自动转换可能会在将该数据类型分配给支持的NetCDF4数据类型时遇到一些问题。
不设置属性保存到netcdf是否有效?
但如果这确实是问题所在,您可以尝试设置.to_netcdf()函数的encoding参数。

相关问题