【问题标题】:In an array, list indices must be integers or slices, not str error python在数组中,列表索引必须是整数或切片,而不是 str 错误 python
【发布时间】:2022-01-17 12:02:08
【问题描述】:

我有一个从 .tsv 文件读取数据然后将其列转换为数组的代码。但是,当我尝试在 for 循环中使用这些数组时,它会显示“TypeError:列表索引必须是整数或切片,而不是 str”。我该如何解决这个问题?

这是我的代码:

import pandas as pd
import astropy.units as u
import astropy.coordinates as coord

column_names = ["#paper", "Object", "RA","Ra2","DEC","Dec2"]
"""data = pd.read_csv ("jwebb.tsv", sep = '\t')"""


data=pd.read_csv("jwebb.tsv", sep = '\t', names=column_names)

STARS=data.Object.to_list()
RA=data.RA.to_list()
DEC=data.DEC.to_list()




for i in STARS:
    from astroquery.simbad import Simbad
    result_table = Simbad.query_object(STARS[i], wildcard=True)
    print(result_table)

【问题讨论】:

    标签: python csv error-handling astroquery


    【解决方案1】:

    数据框没有名为“Object”、“RA”或“DEC”的属性。如果这些是列,您必须使用以下方法访问它们:

    Stars = data["Object"].to_list()
    

    【讨论】:

    • 不,我不是那个意思。我有 STARS、RA 和 DEC 数组作为 STARS=['WASP-80', 'SAO-206462', '2MJ0944', 'FOMALHAUT-C'...'V-AP-COL'] 但里面的代码 for 循环必须查找所有这些名称,但它只查找第一个词:'WASP-80'
    • 如果您运行我的代码并键入 print(STARS),您会看到该数组具有来自 .tsv 文件的名称。但是 for 循环不能选择这些名称
    猜你喜欢
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 2020-05-14
    相关资源
    最近更新 更多