如何将自定义函数应用于Pandas中带有滚动窗口的文本列?

2024-09-29 19:20:27 发布

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

我有一个函数,它向数组的最后一项添加一些字符串并返回一个数字:

def mycoolfunct(v):
    last_bin = v[-1]
    
    sval2 = last_bin[-1] + 'xx'
    sval1 = last_bin[-2] + last_bin[-1] + 'n'
    
    v += [sval1, sval2]
    
    return mycoolcalc(v) # returns a number like 0.2

我用这种方式手动调用它,它可以按预期工作:

print(mycoolfunct(['axx', 'are']))
0.35

但是,如果我尝试使用pandas中的滚动窗口执行此函数:

df = pd.DataFrame(['are', 'axe', 'are', 'fer'])
print(df[0].rolling(2).apply(mycoolfunct))

我得到以下错误:

DataError: No numeric types to aggregate

当滚动窗口传递文本列而不是数字列时,如何调用函数


Tags: 函数字符串dfreturnbindef数字数组

热门问题