gpt4 book ai didi

使用大表循环的python性能问题

转载 作者:行者123 更新时间:2023-11-28 21:04:35 24 4
gpt4 key购买 nike

我正在使用 python 和多个库(如 pandas 和 scipy)来准备数据,以便我可以开始更深入的分析。出于准备目的,我正在创建具有两个日期差异的新列。
我的代码提供了预期的结果,但速度非常慢,所以我不能将它用于具有 80K 行的表。运行时间大约需要。仅仅为了这个简单的操作,80分钟的表。

问题肯定和我的写操作有关:

tableContent[6]['p_test_Duration'].iloc[x] = difference

而且 python 提供了一个警告:

enter image description here

日期差异的完整代码示例:

import time
from datetime import date, datetime

tableContent[6]['p_test_Duration'] = 0

#for x in range (0,len(tableContent[6]['p_test_Duration'])):
for x in range (0,1000):
p_test_ZEIT_ANFANG = datetime.strptime(tableContent[6]['p_test_ZEIT_ANFANG'].iloc[x], '%Y-%m-%d %H:%M:%S')
p_test_ZEIT_ENDE = datetime.strptime(tableContent[6]['p_test_ZEIT_ENDE'].iloc[x], '%Y-%m-%d %H:%M:%S')
difference = p_test_ZEIT_ENDE - p_test_ZEIT_ANFANG

tableContent[6]['p_test_Duration'].iloc[x] = difference

正确结果表:

---

最佳答案

去除循环,将函数应用于整个系列。

ZEIT_ANFANG = tableContent[6]['p_test_ZEIT_ANFANG'].apply(lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S'))
ZEIT_ENDE = tableContent[6]['p_test_ZEIT_ENDE'].apply(lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S'))
tableContent[6]['p_test_Duration'] = ZEIT_ENDE - ZEIT_ANFANG

关于使用大表循环的python性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45057978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com