Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将.fits.gz文件放入熊猫数据帧';ValueError:little-endian编译器';_Python_Pandas_Astropy_Astronomy - Fatal编程技术网

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.至_()

异常可能不是由于压缩造成的,但如果没有完整的回溯,很难说。这是否回答了您的问题?