吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 954|回复: 4
收起左侧

[求助] python循环list pandas

[复制链接]
lizy169 发表于 2024-4-5 22:46
25吾爱币
发现一个坑
不知道该怎么处理了
各位大神们以前碰到过类似的问题没?
请指点,谢谢!!
[Python] 纯文本查看 复制代码
import pandas as pd


l1 = ['1', '2', '3', '...', '2000']  # 大概2000个元素
l2 = ['1', '2', '3']  # 从l1众多元素里,只选取其中的几个循环试运行

for i in l1:
    df = pd.read_parquet('{}.parquet'.format(i))
    '''
    对df有大量复杂的计算,有N多变量,上百行代码
    '''
    print(df)

'''
同样的循环体代码,循环读取计算l1的文件和l2文件,发现计算后的结果不一样???
'''

最佳答案

查看完整内容

帮你问GPT了 [mw_shl_code=asm,true]在你的代码中,循环体内有大量复杂的计算,每次循环都会创建一个新的 DataFrame 对象 df,并对其进行处理。在每次循环中,你读取了一个 parquet 文件并对其进行处理,然后将结果打印出来。 问题可能出现在循环内的计算过程中。考虑以下可能的原因: 数据差异: 看起来你在循环中使用了大量的复杂计算。如果你的数据在不同的循环中有所不同,例如 l1 和 l2 中包含的文件内容不同,那么结 ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

南笙 发表于 2024-4-5 22:46
帮你问GPT了
[Asm] 纯文本查看 复制代码
在你的代码中,循环体内有大量复杂的计算,每次循环都会创建一个新的 DataFrame 对象 df,并对其进行处理。在每次循环中,你读取了一个 parquet 文件并对其进行处理,然后将结果打印出来。

问题可能出现在循环内的计算过程中。考虑以下可能的原因:

数据差异: 看起来你在循环中使用了大量的复杂计算。如果你的数据在不同的循环中有所不同,例如 l1 和 l2 中包含的文件内容不同,那么结果可能会不一样。

计算过程中的变量使用: 在循环内部的计算过程中,你可能使用了其他变量或数据。如果这些变量在每次循环中都被修改或者依赖于循环中的其他数据,那么结果可能会不一样。

并发执行问题: 如果你的计算过程中涉及到并发执行或者异步操作,结果可能会受到影响。在并发执行的情况下,由于执行顺序的不确定性,结果可能会不一致。

为了排除问题,你可以尝试以下方法:

调试代码: 使用调试工具逐步执行代码,观察每次循环中变量的值以及计算结果,以找出问题所在。

简化问题: 如果可能的话,尝试在简化的环境下运行代码。例如,可以尝试只处理循环中的一个文件,以确定问题是否与特定文件相关。

排除并发问题: 如果涉及到并发执行或者异步操作,确保适当地同步和处理线程间的竞争条件。

检查数据质量: 确保读取的文件内容与预期一致,数据质量是否符合预期。

通过以上方法,你应该能够找出代码中不一致的原因,并解决问题。
 楼主| lizy169 发表于 2024-4-5 22:51
也就是从L1中循环读取计算:pd.read_parquet('1.parquet')
和从L2中循环读取计算:pd.read_parquet('1.parquet')

两个的计算结果应该是完全一样的,
因为文件路径、文件名、计算方式等全都一样,但计算后的结果就是不一样
吖力锅 发表于 2024-4-5 22:58
 楼主| lizy169 发表于 2024-4-6 08:33
初步怀疑是多次分组、聚合、合并以及各种切片产生的DataFrame副本较多,但又没警告提醒;
在循环体末加上 ’del df‘,也没效果
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表