gpt4 book ai didi

python - 在 Python : first time it runs through properly, 中运行 for 循环,但其余运行未正常运行

转载 作者:太空宇宙 更新时间:2023-11-04 01:54:11 24 4
gpt4 key购买 nike

所以我有一个方程式,根据它是大于还是小于我的“截止”数字来替换列中的数字(在 csv 文件中)。并将输出值保存到文档中。第一次运行正常并给了我正确的值。但是接下来的几个循环,输出值都是 0。(而不是 1 和 0 的混合)

df 是我的 csv 文件中的一个长数字文档

d =  df_gsuvr # same name as previous
df = pd.DataFrame(data=d)

list = [1.18, 1.12, 1.083, 1, 0.83]
for number in list:
#evaluate the number under the 'y' column according to 'number'
df['y'] = df.apply(lambda x: "1" if float(x['y']) > number else "0", axis=1)
df.to_csv(f"{number}.csv", index = True, header = True)

我没有收到有关代码的任何错误消息。当它完成运行时,它总是说“进程完成,退出代码为 0”,但列表中第 2-4 个值的输出将创建一个 0 的文档(表明文档中的所有数字都 < 0.83,这是完全错误的)

最佳答案

问题是在你的第一个循环中你修改了你的 df 文件。在您的第一个循环之后,您的列 df['y'] 仅包含 0 或 1。这就是为什么在第一个循环之后您只有 0。

您可以通过在临时 df 上执行操作来解决您的问题。这是它的样子:

d =  df_gsuvr # same name as previous
df = pd.DataFrame(data=d)
df_temp = df.copy()

list = [1.18, 1.12, 1.083, 1, 0.83]
for number in list:
#evaluate the number under the 'y' column according to 'number'
df_temp['y'] = df.apply(lambda x: "1" if float(x['y']) > number else "0", axis=1)
df_temp.to_csv(f"{number}.csv", index = True, header = True)

关于python - 在 Python : first time it runs through properly, 中运行 for 循环,但其余运行未正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57273381/

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