如何计算应用函数对熊猫中的行的迭代次数

时间:2018-11-08 06:10:02

标签: python pandas

如果我使用apply将函数循环到pandas数据框中的每一行,例如:

def my_function():
    return "True"


df['Result'] = df.apply(lambda row: my_function(row), axis = 1)

我如何计算迭代次数以跟踪进度

3 个答案:

答案 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)

你可以简单地打印索引,直到你的代码被执行。