gpt4 book ai didi

python - 如何使 Pandas 中的行操作更快?目前发布代码需要 13 小时

转载 作者:太空宇宙 更新时间:2023-11-03 20:25:48 25 4
gpt4 key购买 nike

我有 100,000 行和大约 500 多列。我想计算前 5 行的加权平均值,并为每一行使用该数据。例如,我有 10 行

第 1:5 行 - 不处理

第 6 行 = 第 5 行 * 1 + 第 4 行 * 0.8 + 第 3 行 * 0.6 + 第 2 行 * 0.4 + 第 1 行 * 0.2

使用 Pandas 我已经解决了这个问题,但是需要 13-14 小时才能在整个数据集上完成此操作。我读到了有关 .apply 函数的内容,但我不确定当您访问前几行中的信息时如何使用它。

for i in range(lengthAllData):      #Length = Total rows
if i>=5:
alldata.iloc[i,1:width] = (alldata.iloc[i-1,1:width]*1 +
alldata.iloc[i-2,1:width]*0.8 + alldata.iloc[i-3,1:width]*0.6 +
alldata.iloc[i-4,1:width]*0.4 + alldata.iloc[i-5,1:width]*0.2) /
wtavg
else:
pass

我想在几分钟内执行此代码。我该怎么做?

最佳答案

一般来说,您应该避免将循环应用于数据帧,尤其是它们的行。尝试向下移动数据框:

newdata = df.shift(1) * 1   + df.shift(2) * 0.8 + df.shift(3) * 0.6\
+ df.shift(4) * 0.4 + df.shift(5) * 0.2

关于python - 如何使 Pandas 中的行操作更快?目前发布代码需要 13 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57830808/

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