【发布时间】:2021-07-21 08:52:35
【问题描述】:
我有以下函数,它将一些字符串添加到数组的最后一项并返回一个数字:
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
如何调用带有滚动窗口的函数传递文本列而不是数字列?
【问题讨论】:
-
滚动在非数字列上不受支持。这里的目标是什么?
标签: python pandas dataframe apply rolling-computation