我想创建一个新列,在第一列上计算最大值,如下所示:
High Highest2P Highest3P
0 101.0 102.0 103.0
1 102.0 103.0 109.0
2 103.0 109.0 109.0
3 109.0 109.0
4 100.0
from pandas import *
df = pd.DataFrame({
"High": pd.Series( [101.0, 102.0, 103.0, 109.0, 100.0] )
})
def calcHighest2P(x): return max(df["High"], df["High"].shift(-1))
def calcHighest3P(x): return max(df["High"], df["High"].shift(-1), df["High"].shift(-2))
df["Highest2P"] = calcHighest2P(df["High"])
df["Highest3P"] = calcHighest3P(df["High"])
但是我得到了以下错误信息:“ValueError:序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()
可以将
Rolling.max
与assign
一起使用:相关问题 更多 >
编程相关推荐