如何在枚举的 for 循环中获取索引结果列表



我正在尝试调用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)

相关内容

  • 没有找到相关文章

最新更新