Python Pyfits:更改列名/格式

Python Pyfits:更改列名/格式,python,pyfits,Python,Pyfits,我正在尝试用pyfits连接文件。由于没有正确执行,输入文件中的一个列名和一个列格式不相同,因此我无法使用np.concatenate连接ndarray 我想(巧妙地)更改列名。我在pyfits文档中找到了pyfits.Coldefs.change_name函数(),因此我现在要做的是: hdu=pyfits.open(myfile,memmap=True)[1] new_columns=pyfits.columns(hdu.columns)。更改_名称(prev_名称,new_名称) 我也试过

我正在尝试用pyfits连接文件。由于没有正确执行,输入文件中的一个列名和一个列格式不相同,因此我无法使用np.concatenate连接ndarray

我想(巧妙地)更改列名。我在pyfits文档中找到了pyfits.Coldefs.change_name函数(),因此我现在要做的是:

hdu=pyfits.open(myfile,memmap=True)[1]
new_columns=pyfits.columns(hdu.columns)。更改_名称(prev_名称,new_名称)

我也试过:

hdu=pyfits.open(myfile,memmap=True)[1]
new_columns=pyfits.columns(hdu.columns)。更改属性(上一个名称,'names',新名称)

这将返回一个None类型的对象。有什么我遗漏的吗


谢谢

尽管我之前对这个问题的评论仍然有效,但实际上我在Astropy v1.0.2中修复了这个问题,因此这些方法现在基本上可以工作了()。要重命名列,只需执行以下操作:

hdu.columns[prev_name] = new_name
这将重命名Numpy数组本身中的列,以及将表写回FITS时的列


更改格式没有那么简单,目前需要创建一个新表。

在4.0.1版中,解决方案的开头是

hdu.columns[prev_name] = new_name
不起作用。它抱怨“ColDefs”不支持项目分配。要解决此问题,我们需要直接更改其名称:

hdu.columns[prev_name].name = new_name

这应该出现在常见问题解答中,但基本上不要使用
ColDefs
界面,因为它很旧而且已经损坏。尝试改用Astropy表格界面: