我对编程非常陌生,所以请耐心等待,所以基本上我有一个包含4,229个.fits文件(legac_spec)的文件夹和一个包含1989行的数据帧(legac_cat),其中两列分别是id号和掩码值。每个.fits文件都有一个类似于legac_M[mask value]_v3.6_spec1d _[id number].fits
的文件名,但是我不确定如何获得我需要的特定文件,其中每个掩码值和id号都对应于一个特定文件。
我知道我需要使用for循环,但我不确定如何让它做我需要它做的事情,因为我必须分别屏蔽掩码值和id号。
import numpy as np
import pandas as pd
from astropy.io import fits
legac_cat = pd.read_csv('legac_file')
M = legac_cat['mask']
ID = legac_cat.id
directory_name = 'C:/Users/kfdhfs/Downloads/legac_spec'
for mask_val in legac_cat['mask']:
for files in directory_name:
hdu = fits.open(files)
发布于 2021-06-28 14:07:24
我几乎没用过熊猫。我还没有测试过这个解决方案,所以如果它不能“开箱即用”的话,我很抱歉。在我看来,您所要做的就是迭代数据帧的行(其中每一行都有一个对应于一个文件的“掩码”和"id“),然后根据每一行的”掩码“和"id”构造一个文件名--然后打开文件:
legac_cat = pd.read_csv("legac_file")
for index, row in legac_cat.iterrows():
file_name = "legac_M{}_v3.6_spec1d_{}.fits".format(row["mask"], row["id"])
# open the file using file_name
https://stackoverflow.com/questions/68164656
复制相似问题