我试图在数据帧上的函数中使用一些布尔逻辑,但出现错误:
在[4]:
data={'level':[20,19,20,21,25,29,30,31,30,29,31]}
frame=DataFrame(data)
frame
Out[4]:
level
0 20
1 19
2 20
3 21
4 25
5 29
6 30
7 31
8 30
9 29
10 31
In [35]:
def calculate(x):
baseline=max(frame['level'],frame['level'].shift(1))#doesnt work
#baseline=x['level']+4#works
difftobase=x['level']-baseline
return baseline, difftobase
frame['baseline'], frame['difftobase'] = zip(*frame.apply(calculate, axis=1))#works
但是,这会引发以下错误:
^{pr2}$我读了How to look back at previous rows from within Pandas dataframe function call? 和http://pandas.pydata.org/pandas-docs/stable/gotchas.html 但不知道怎么把这个应用到我的问题上?在
函数max使用不当。np.最大值(也许吧最大毫安以及根据numpy文件)工程。显然普通的max无法处理数组(很容易)。替换
与
^{pr2}$就这样。为了便于阅读,我去掉了另一部分:
原来的问题是隐藏了另一个问题,它在去掉函数的移位部分时出现。返回形状不匹配,但这是另一个问题,在这里提到它是为了充分披露
相关问题 更多 >
编程相关推荐