【问题标题】:How to optimize the nested for loop having nested if else in python如何在python中优化嵌套if else的嵌套for循环
【发布时间】:2022-01-25 02:25:07
【问题描述】:
l=[]
for index,value in df['Term'].iteritems():
    for i,v in df['Date'].iteritems():
        if index == i:
           if pd.isnull(value):
               l.append(None)
           else:
              value=int(value):
              l.append(v + relativedelta(months=+value)

这需要很多时间。谁能帮我优化这个功能。

【问题讨论】:

  • @JonSG 这是一个嵌套的 for 循环,无法压缩
  • @Bharel Ahh,我错过了,那么 itertools.product() 可能会有所帮助
  • @JonSG 可能不会对运行时产生实质性影响
  • 对于初学者,永远不要使用iteritems。使用itertuples。但是,这段代码到底应该做什么? if index == i: 表示您正在尝试按索引来计算所有内容,如果是这样,您为什么要进行嵌套循环?请始终包含minimal reproducible example,其中包含示例输入和所需输出以及您实际尝试完成的描述

标签: python optimization


【解决方案1】:

我不太了解 Pandas,所以我的 zip 语句可能并不完美。

您只关心 i == index 所针对的项目,所以这确实是一个 zip 声明。

l = []
for value, v in zip(df['Term'], df['Date']):
    if pd.isnull(value):
        l.append(None)
    else:
        value=int(value):
        l.append(v + relativedelta(months=+value)

【讨论】:

    猜你喜欢
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2020-05-18
    相关资源
    最近更新 更多