python - 尝试在 astropy 中加入表但出现参数错误
问题描述
我有三张表,seric、mass 和 magphys。每个都是相当大的表,我希望将它们合并为一个,使用 ID (CATAID) 作为参考。但是,当我使用以下内容时:
import matplotlib.pyplot as plt
from astropy.io import ascii
import numpy as np
from scipy.stats import kstest
from scipy.stats import ks_2samp
from scipy.stats import anderson
from scipy.stats import anderson_ksamp
import pandas as pd
from astropy.table import Table, join
import urllib.request
导入我的所有信息,然后从文件中下载并命名我的各个表:
sersic = Table.read('Sersic.fits', format='fits')
mass = Table.read('StellarMass.fits', format='fits')
magphys = Table.read('MagPhys.fits', format='fits')
然后尝试使用 CATAID 列(每个表中的第一个,dtype int32)形成第四个连接表:
gama = join(sersic, mass, magphys, keys='CATAID')
我收到一条错误消息
"---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-22-c200aeac718e> in <module>
----> 1 gama = join(sersic, mass, magphys, keys='CATAID')
TypeError: join() got multiple values for argument 'keys'.
如何修复这个多参数错误并形成名为“gama”的单个表?
如果我不能将所有三个表合并为一个,我如何至少加入两个,例如 sersic 和 mass?
解决方案
Tablejoin
方法需要两个表作为前两个参数,一个要连接的左表和右表。有关如何调用的示例和信息,请参阅https://docs.astropy.org/en/stable/table/operations.html#joinjoin
。
您可以通过连接前两个表,然后将该结果连接到第三个表来连接三个表。
您看到的错误是因为keys
是加入的第三个参数,所以它认为您提供keys
了两次。
推荐阅读
- django - Django:获取第二个用户对象
- html - 宽度变化时进度点的位置没有正确对齐
- php - 使用 Laravel 在控制器中使用私有变量
- javascript - 展开和折叠 HTML 表数据行
- python - 试图改变列表失败
- streamlit - 有没有办法在流光中更改微调器的占位符文本?
- php - laravel中api的更新方法不起作用
- vue.js - 在 vue 中检测 tbody 上的滚动
- firebase - SwiftUI:Firebase ForEach 列表执行编辑功能无法编辑选定的行项目
- c - 在 C 中将静态大小的向量与静态大小的常量非方阵相乘的最快方法,生成一个 15 元素的输出向量