gpt4 book ai didi

python - 我怎样才能加速这个数据帧?

转载 作者:行者123 更新时间:2023-12-04 07:52:00 25 4
gpt4 key购买 nike

我有两个数据框 ssk与周围 1M元素,我需要生成一个新的数据框 df从它那里:

df.iloc[i] = s.iloc[f(i)] / sk.iloc[g(i)] 
哪里 fg是返回整数的函数。
目前我正在做:
data = []
for i in range(s.shape[0])):
data.append(s.iloc[f(i)] / sk.iloc[g(i)])

df = pd.DataFrame(data, columns=s.columns)
但这似乎很慢。大约需要 5 分钟(数据帧有 9 float 列)。
只有 10M分区,所以 5 分钟似乎低于标准。所有的时间似乎都花在了迭代上 ssk ,所以我想知道是否有一种方法可以构建 s[f]sk[g]迅速地?

最佳答案

首先 - 限制单次迭代中处理的零件数量 - 所以尽可能多地矢量化:

f_i = [f(i) for i in range(len(s))]
g_i = [g(i) for i in range (len(s))]

df = s.iloc[f_i] / sk.iloc[g_i]
第二件事 - 尝试矢量化生成 f_ig_i尽你所能地。
您还没有分享这些函数的示例,但我们的想法基本上是让它在 numpy 上工作。 ,避免迭代处理。
import numpy as np

f_i = f(np.arange(len(s)))
g_i = g(np.arange(len(s)))

关于python - 我怎样才能加速这个数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66915742/

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