Python:跟踪已处理作业的百分比

2024-09-29 06:22:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下运行了很长时间的代码:

my_df['result'] = my_df.apply(lambda x: my_fun(x), axis = 1)

my_df是一个熊猫数据帧,我有数百万行。有没有办法找出完成工作的百分比?e、 g.在我的娱乐圈或其他地方放一份打印声明?谢谢!你知道吗


Tags: 数据lambda代码声明dfmy地方result
1条回答
网友
1楼 · 发布于 2024-09-29 06:22:12

除非你正在做的事情会使你的进程与sys.stdout(罕见但似乎合理)或sys.stderr(明显罕见但技术上仍然不是不可能)脱节,否则你的想法就是在my_fun中放一个print语句就可以了。你知道吗

当然,在my_fun中记录进程mid表达式是不可能的,例如my_fun调用一些other_fun需要很长时间。在这种情况下,您必须将打印置于other_fun。例如,如果要分别对每一行执行某些操作,可以在相关循环中的某个位置进行打印,相当容易地说出已完成的行数。只需保持计数,并打印数字(可能到sys.stderr或一个记录器,而不是sys.stdout,如果你使用sys.stdout做其他事情)每次它达到1000(或10000,或100000)的倍数,选择一个适合你使用的数字。不要打印每一行——如果一行很快就能处理,那么它会模糊过去,以至于无法真正读取,最后你可能会在打印上花费足够的时间,这实际上会有意义地减慢处理速度。你知道吗

如果你在做一个需要考虑所有数据的操作,没有循环。。。您仍然可以在函数中执行进度报告,但是没有真正的方法来获得“已完成的行数”统计数据,而且要获得准确的百分比可能会更加困难。你知道吗

相关问题 更多 >