如果我使用apply将函数循环到pandas数据框中的每一行,例如:
def my_function():
return "True"
df['Result'] = df.apply(lambda row: my_function(row), axis = 1)
我如何计算迭代次数以跟踪进度
答案 0 :(得分:3)
我想出了一个解决方法,如果您使用的是数据框,则添加一个像这样的计数器
input_df['counter']=0
for i,row in input_df.iterrows():
input_df['counter'][i]= i+1
您的Apply语句:-
input_df.apply(YourFunction,axis=1)
您的呼叫功能:-
def YourFunction(row):
print(row['counter'])
答案 1 :(得分:0)
这是一个艰难的过程。这取决于您的功能做什么。特别是您的功能是否可以广播。如果是这样,我相信这就是熊猫会做的。在这种情况下,没有明显的候选对象可以用作“循环计数器”,即进度指示器。
另一方面,如果您想通过一些复杂的不可广播的操作进行线性传递,那么您也可以显式地编写for循环。
答案 2 :(得分:0)
我也遇到了同样的问题。
df['index'] = df.index
def my_function(count):
if count%5==0:
print(count)
return "True"
df['Result'] = df.apply(lambda row: my_function(row.index), axis = 1)
你可以简单地打印索引,直到你的代码被执行。