Python 具有最小周期的列的滚动秩
我有一个数据框,我想在其中计算滚动排名,窗口=10,最小周期=3 基本代码:Python 具有最小周期的列的滚动秩,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个数据框,我想在其中计算滚动排名,窗口=10,最小周期=3 基本代码: df['RHigh'] = df.High.rolling(window=10).apply(lambda x: pd.Series(x).rank(ascending=False).values[-1]) 这很好用。但是如果我加上一个min_periods=3 修订守则: df['RHigh'] = df.High.rolling(window=10, min_periods=3).apply(lambda x:
df['RHigh'] = df.High.rolling(window=10).apply(lambda x: pd.Series(x).rank(ascending=False).values[-1])
这很好用。但是如果我加上一个min_periods=3
修订守则:
df['RHigh'] = df.High.rolling(window=10, min_periods=3).apply(lambda x: pd.Series(x).rank(ascending=False).values[-1])
它只给我相同的基本代码输出
我遗漏了什么?它们应该不同,请参见以下内容:
np.random.seed(42)
df = pd.DataFrame({'High': np.random.uniform(0, 1, 100)})
df['RHigh_base'] = df.High.rolling(window=10).apply(
lambda x: pd.Series(x).rank(ascending=False).values[-1])
df['RHigh_min_periods'] = df.High.rolling(window=10, min_periods=3).apply(
lambda x: pd.Series(x).rank(ascending=False).values[-1])
df.head()
输出:
High RHigh_base RHigh_min_periods
0 0.374540 NaN NaN
1 0.950714 NaN NaN
2 0.731994 NaN 2.0
3 0.598658 NaN 3.0
4 0.156019 NaN 5.0
我发现了我的错误。这是正确的。