Python 3.x 如何命名netcdf文件中的列?
如何使用python命名netcdf文件中的列 我使用这样的语法:Python 3.x 如何命名netcdf文件中的列?,python-3.x,netcdf4,Python 3.x,Netcdf4,如何使用python命名netcdf文件中的列 我使用这样的语法: with Dataset(file_name, 'w', format=NETCDF_FORMAT) as ncfile: ncfile.createDimension('Time', 12) ncfile.createDimension('Simulations', 15) ncfile.createVariable('Asset_value', values, ('Simulations', 'Time')
with Dataset(file_name, 'w', format=NETCDF_FORMAT) as ncfile:
ncfile.createDimension('Time', 12)
ncfile.createDimension('Simulations', 15)
ncfile.createVariable('Asset_value', values, ('Simulations', 'Time'))
我想把一年中的每个月作为每个列的名称,而不是0,1,2。。。netcdf提供的
有没有一种用python实现的方法
非常感谢。如果我没有弄错,您要做的是以netcdf格式存储。如果您使用nc版本4,您可以做的就是将一个
dict
放入一个组中
:
从netCDF4导入数据集
#假设您有dict形式的数据:
输入={'somekey':'somevalue'}
使用数据集('yourncfile.nc','w')作为f:
data=f.createGroup('data'))
对于input.items()中的k,v:
setattr(数据,k,v)
我发现这非常方便,因为dict
非常适合HDF5数据模型(netcdf4的基础),并且同样可以“加载回”Python。要获取数据“返回”,请执行以下操作:
数据集('yourncfile.nc')作为f:
数据_Out={}
dataOut=f.groups['Data']
对于dataOut.ncattrs()中的attr:
数据输出[attr]=dataOut.getncattr(attr)
注:1)到目前为止,我没有检查这是否也适用于pd.df。2) 如果你是唯一一个使用nc4而其他人都使用nc3,你的同事可能会感到不安。nc4功能可能不适用于为nc3编写的工具;-)你认为NETCDF文件中的“列”是什么?如果,像在你的例子中,你有一个变量'Asset_value',你可以用'name'来称呼它,谢谢你的回答。为了澄清这一点,我将资产的每个值都称为'column',时间=0,例如,因为时间是第二个维度。例如,我还将为模拟获得的每行“线”称为=12。我想用年月来命名我的时间轴。更清楚吗?非常感谢!别担心,我的同事也使用nc4;)但是,我的值存储在pd.df中,我无法使您的解决方案正常工作:(@Benito-yeah,我想是的…df-to-dict(和back)在这里可能是一种攻击,但并不十分优雅。我看到的另一个选项是将df存储为2D数组,并创建一个包含列名等的附加变量。