Python 如何将.fits.gz文件放入熊猫数据帧';ValueError:little-endian编译器';
我有一个文件Python 如何将.fits.gz文件放入熊猫数据帧';ValueError:little-endian编译器';,python,pandas,astropy,astronomy,Python,Pandas,Astropy,Astronomy,我有一个文件'3dhst.v4.1.5.master.fits.gz',我想打开它并将其生成一个数据帧。我想从中提取一组列,然后将其和另一个数据帧合并。我尝试了以下几点: import astropy from astropy.io import fits master = fits.open('3dhst.v4.1.5.master.fits.gz') masterdf = pd.DataFrame(master[1].data) masterdf = masterdf[['grism_id'
'3dhst.v4.1.5.master.fits.gz'
,我想打开它并将其生成一个数据帧。我想从中提取一组列,然后将其和另一个数据帧合并。我尝试了以下几点:
import astropy
from astropy.io import fits
master = fits.open('3dhst.v4.1.5.master.fits.gz')
masterdf = pd.DataFrame(master[1].data)
masterdf = masterdf[['grism_id' , 'field' , 'ra' , 'dec' , 'z_best', 'z_best_s' , 'z_spec' ,
'z_peak_phot' , 'z_max_grism']]
我得到:
ValueError: Big-endian buffer not supported on little-endian compiler
这是一个错误消息,我以前见过这个文件,但仍然不明白为什么。astropy文档说,open()
函数将无缝地打开用gzip、bzip2或pkzip压缩的FITS文件。请注意,在此上下文中,我们讨论的是使用这些实用程序之一(例如.FITS.gz文件)压缩的FITS文件。“如果只运行文件的打开部分,则不会出现错误。我还尝试使用以下方法打开该文件:
with gzip.open('3dhst.v4.1.5.master.fits.gz') as f:
master = fits.open(f)
这将返回对
master[0]的空响应。标头
,因此此方法失败。使用Astropy中的表
类可能是一个更好的选择,它有一种方法可以转换为数据帧:
从astropy.table导入表
t=Table.read('3dhst.v4.1.5.master.fits.gz')
t=t[[grism_id',field',ra',dec',z_best',z_best_s',z_spec',z_peak_phot',z_max_grism']
df=t.至_()
异常可能不是由于压缩造成的,但如果没有完整的回溯,很难说。这是否回答了您的问题?