gpt4 book ai didi

python - 循环替换值所需的时间太长

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

我有 900 万行代码,我必须将每个“.”替换为上面一行中的数字。这意味着如果第 1 列包含“7”,则下面的点应替换为“7”。但如果第 3 列包含“44 ”,则后续值必须替换为 44,依此类推。

问题:目前处理 10,000 行需要 18 分钟。

您对如何优化它有什么想法吗?如果是的话,可以给我代码吗?

尝试将值放入另一个 df 并从那里开始工作,但这会使事情稍微快一些(从 18 分钟到 17 分钟)

我不知道为什么,但 .replace 不起作用

for x in range(0,len(BD)):
if BD['A_SECOND'].iloc[x] <> "." :
Second = BD['A_SECOND'].iloc[x]
else:
BD['A_SECOND'].iloc[x] = Second

如上所述,代码应将第一列转换为第二列:

column1old    column1new
7 7
. 7
. 7
33 33
. 33
. 33
. 33
2 2
. 2

等等..

谢谢! :)

最佳答案

您可以将点替换为 NaN 值,然后使用 fillna(method='ffill'):

BD['A_SECOND'] = np.where(BD['A_SECOND'] == '.', np.nan, BD['A_SECOND'])
BD['A_SECOND'].fillna(method='ffill', inplace=True)

关于python - 循环替换值所需的时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55844204/

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