我正在尝试调用spice.str2et(n[i])
以获取我从 excel 导入的日期列表(称为 UTC
(。我可以得到spice.str2et(n[i])
但每次循环时,它都会替换之前计算的时间。相反,我需要索引列表中的所有spice.str2et(n[i])
结果。(我也是 Python/编码的新手,3 周前刚开始。
我尝试在我的 et 之后添加[i]
在我的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 的列表,因为它每次循环时都会覆盖(当您打印不缩进时,它只给出最后一个值(。
看起来您可能只想要一个列表理解。像这样:
n = UTC.iloc[:,0]
newList = [spice.str2et(txt) for txt in n]
ets = UTC.iloc[:, 0].apply(spice.str2et)
说明:UTC
是一个 pandas 数据帧,因此最好将调用spice.str2et()
广播到整个列 0,这比在执行时手动迭代(或.iterrows()
,也应避免(的性能更高。
- 没有必要切片列
n = UTC.iloc[:,0]
的临时副本,这只会泄漏内存或创建不必要的对象。 - 请快速浏览一下熊猫教程基本功能:函数应用
这是你要找的吗?
n = UTC.iloc[:,0]
ets = []
for i, txt in enumerate(n):
et = spice.str2et(n[i]) #calculates ephermis time for utc,
ets.append(et)