我经常对超过1500万行的数据帧执行熊猫操作,我很乐意能够访问特定操作的进度指示器。是否存在基于文本的大熊猫拆分应用合并操作进度指示器?例如,类似:df_users.groupby(['userID', 'requestDate']).apply(feature_rollup)其中feature_rollup包含一些DF列并通过各种方法创建新用户列的函数。对于大型数据帧,这些操作可能要花费一些时间,因此我想知道是否有可能在iPython笔记本中提供基于文本的输出,从而向我更新进度。到目前为止,我已经尝试了Python的规范循环进度指示器,但是它们并未以任何有意义的方式与熊猫互动。我希望pandas库/文档中有一些被我忽略的东西,它使人们知道了split-apply-combine的进度。一个简单的实现方法可能是查看apply功能在其上起作用的数据帧子集的总数,并将进度报告为这些子集的完成部分。这是否可能需要添加到库中?
3 回答

ABOUTYOU
TA贡献1812条经验 获得超5个赞
您可以使用装饰器轻松完成此操作
from functools import wraps
def logging_decorator(func):
@wraps
def wrapper(*args, **kwargs):
wrapper.count += 1
print "The function I modify has been called {0} times(s).".format(
wrapper.count)
func(*args, **kwargs)
wrapper.count = 0
return wrapper
modified_function = logging_decorator(feature_rollup)
然后只需使用modified_function(并在您希望打印时更改它)
添加回答
举报
0/150
提交
取消