Предположим, что "List_a" и "List_b" являются обеими таблицами, и вы хотите получить "возраст" из "List_b" для записей, где и "List_a", и "List_b", вы можете использовать Pandas, как в вашем подходе. Но у Astropy также есть встроенная join
операция для таблиц.
Так что я предполагаю, что у вас есть что-то похожее на:
>>> from astropy.table import Table
>>> tab_a = Table({'NAME': ['A', 'B', 'C']})
>>> tab_b = Table({'NAME': ['A', 'C', 'D'], 'AGE': [1, 3, 4]})
Если вычтение из файла FITS, которое вы можете использовать, например, Table.read
для чтения таблицы FITS в объект Table
(среди других подходов).
Затем вы можете использовать join
чтобы объединить две таблицы, где их имена совпадают:
>>> from astropy.table import join
>>> tab_c = join(tab_a, tab_b, keys='NAME')
>>> tab_c
<Table length=2>
NAME AGE
str1 int64
---- -----
A 1
C 3
Я думаю, что, возможно, это то, что вы спрашиваете.
Затем вы можете записать это в формате ASCII (как в вашем примере) например:
>>> import sys
>>> tab_c.write(sys.stdout, format='ascii.no_header')
A 1
C 3
(Здесь вы можете заменить sys.stdout
именем файла; я просто использовал его в демонстрационных целях). Как вы можете видеть, существует множество встроенных выходных форматов для таблиц , хотя вы также можете определить и свой собственный.
В Astropy уже есть множество подобных полезностей, которые должны вас спасти вво многих случаях от изобретения колеса, когда дело доходит до манипулирования таблицами и обработки форматов файлов - просто просматривайте документы, чтобы лучше понять:)