Как получить индексированный список результатов в перечисляемом цикле for - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь вызвать spice.str2et(n[i]) для списка дат (названного UTC, который я импортировал из Excel). Я могу получить spice.str2et(n[i]), но каждый раз, когда он зацикливается, он заменяет предыдущее рассчитанное время. Вместо этого мне нужны все результаты spice.str2et(n[i]) в индексированном списке. (Я также новичок в Python / Coding, только что начал 3 недели назад.)

Я пытался добавить [i] после моего et в моем et =. Я также посмотрел здесь, как получить индексы из перечисляемых списков, но все они описывают, как получить индекс из исходного списка. Я ищу, чтобы сделать новый индексированный список.

import spiceypy as spice

n = UTC.iloc[:,0] 

for i, txt in enumerate(n):

    et = spice.str2et(n[i]) #calculates ephermis time for utc, 
    print(et)

Это затем дает мне список всех ET, которые я хочу, так как он перезаписывается каждый раз, когда повторяется (когда вы печатаете без отступа, он просто дает последнее значение).

Ответы [ 3 ]

2 голосов
/ 17 июня 2019

Похоже, вы просто хотите понять список. Что-то вроде:

n = UTC.iloc[:,0] 
newList = [spice.str2et(txt) for txt in n]
1 голос
/ 18 июня 2019
ets = UTC.iloc[:, 0].apply(spice.str2et)

Объяснение: UTC - это кадр данных pandas, поэтому лучше транслировать вызов на spice.str2et() на весь столбец 0, это выше, чем ручная итерация, как вы делаете (или .iterrows(), чего также следует избегать).

0 голосов
/ 17 июня 2019

Это то, что вы ищете?

n = UTC.iloc[:,0] 
ets = []

for i, txt in enumerate(n):

    et = spice.str2et(n[i]) #calculates ephermis time for utc, 
    ets.append(et)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...