From b5052c36fd623f8dc9b9114a59888585edcacb1f Mon Sep 17 00:00:00 2001 From: luke <2736230899@qq.com> Date: Fri, 9 Dec 2022 07:51:51 +0000 Subject: [PATCH 1/4] Add example for pandas.DataFrame.rolling() --- pandas/core/window/rolling.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/pandas/core/window/rolling.py b/pandas/core/window/rolling.py index 08c1285b24d23..17166da13e980 100644 --- a/pandas/core/window/rolling.py +++ b/pandas/core/window/rolling.py @@ -1110,6 +1110,40 @@ class Window(BaseWindow): 2 2.958621 3 NaN 4 NaN + + **on** + + Rolling sum with a window length of 2 on specific columons. + + >>> df = pd.DataFrame({ + ... 'A' : [1, 3, 5, np.nan, 7], + ... 'B' : [2, 4, np.nan, 6, 8], + ... 'C': [1.0, 2, 3, 4, 5]}) + + >>> df + A B C + 0 1.0 2.0 1.0 + 1 3.0 4.0 2.0 + 2 5.0 NaN 3.0 + 3 NaN 6.0 4.0 + 4 7.0 8.0 5.0 + + >>> df.rolling(2, on='A').sum() + A B C + 0 1.0 NaN NaN + 1 3.0 6.0 3.0 + 2 5.0 NaN 5.0 + 3 NaN NaN 7.0 + 4 7.0 14.0 9.0 + + >>> df.rolling(2, on='B').sum() + A B C + 0 NaN 2.0 NaN + 1 4.0 4.0 3.0 + 2 8.0 NaN 5.0 + 3 NaN 6.0 7.0 + 4 NaN 8.0 9.0 + """ _attributes = [ From 2df759bec7479de7968ac8c1f3f91b6817739d45 Mon Sep 17 00:00:00 2001 From: luke <2736230899@qq.com> Date: Sun, 11 Dec 2022 01:05:16 +0000 Subject: [PATCH 2/4] Reduce two examples to one --- pandas/core/window/rolling.py | 41 +++++++++++++---------------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/pandas/core/window/rolling.py b/pandas/core/window/rolling.py index 17166da13e980..f36e94840f7c0 100644 --- a/pandas/core/window/rolling.py +++ b/pandas/core/window/rolling.py @@ -1113,37 +1113,26 @@ class Window(BaseWindow): **on** - Rolling sum with a window length of 2 on specific columons. + Rolling sum with a window length of 2 on specific columon. - >>> df = pd.DataFrame({ - ... 'A' : [1, 3, 5, np.nan, 7], - ... 'B' : [2, 4, np.nan, 6, 8], - ... 'C': [1.0, 2, 3, 4, 5]}) + >>> df = pd.DataFrame({'A' : [1, 3, 5, np.nan, 7], + ... 'B' : [2, 4, np.nan, 6, 8]}) >>> df - A B C - 0 1.0 2.0 1.0 - 1 3.0 4.0 2.0 - 2 5.0 NaN 3.0 - 3 NaN 6.0 4.0 - 4 7.0 8.0 5.0 + A B + 0 1.0 2.0 + 1 3.0 4.0 + 2 5.0 NaN + 3 NaN 6.0 + 4 7.0 8.0 >>> df.rolling(2, on='A').sum() - A B C - 0 1.0 NaN NaN - 1 3.0 6.0 3.0 - 2 5.0 NaN 5.0 - 3 NaN NaN 7.0 - 4 7.0 14.0 9.0 - - >>> df.rolling(2, on='B').sum() - A B C - 0 NaN 2.0 NaN - 1 4.0 4.0 3.0 - 2 8.0 NaN 5.0 - 3 NaN 6.0 7.0 - 4 NaN 8.0 9.0 - + A B + 0 1.0 NaN + 1 3.0 6.0 + 2 5.0 NaN + 3 NaN NaN + 4 7.0 14.0 """ _attributes = [ From 0cd37146c09283f6710d6d4f994fa75006402ed8 Mon Sep 17 00:00:00 2001 From: luke <2736230899@qq.com> Date: Tue, 13 Dec 2022 10:43:37 +0000 Subject: [PATCH 3/4] a better exmple --- pandas/core/window/rolling.py | 38 ++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/pandas/core/window/rolling.py b/pandas/core/window/rolling.py index f36e94840f7c0..2d8870ba5772d 100644 --- a/pandas/core/window/rolling.py +++ b/pandas/core/window/rolling.py @@ -1115,24 +1115,30 @@ class Window(BaseWindow): Rolling sum with a window length of 2 on specific columon. - >>> df = pd.DataFrame({'A' : [1, 3, 5, np.nan, 7], - ... 'B' : [2, 4, np.nan, 6, 8]}) + >>> df = pd.DataFrame({ + ... 'A': [pd.to_datetime('2020-01-01'), + ... pd.to_datetime('2020-01-01'), + ... pd.to_datetime('2020-01-02'),], + ... 'B': [1, 2, 3], }, + ... index=pd.date_range('2020', periods=3)) >>> df - A B - 0 1.0 2.0 - 1 3.0 4.0 - 2 5.0 NaN - 3 NaN 6.0 - 4 7.0 8.0 - - >>> df.rolling(2, on='A').sum() - A B - 0 1.0 NaN - 1 3.0 6.0 - 2 5.0 NaN - 3 NaN NaN - 4 7.0 14.0 + A B + 2020-01-01 2020-01-01 1 + 2020-01-02 2020-01-01 2 + 2020-01-03 2020-01-02 3 + + >>> df['B'].rolling('2D').sum() # to avoid warning when sum on 'A' + 2020-01-01 1.0 + 2020-01-02 3.0 + 2020-01-03 5.0 + Freq: D, Name: B, dtype: float64 + + >>> df.rolling('2D', on='A').sum() # value of 'B' differs from above + A B + 2020-01-01 2020-01-01 1.0 + 2020-01-02 2020-01-01 3.0 + 2020-01-03 2020-01-02 6.0 """ _attributes = [ From e65f18f78f7f9b17206645a159b39feff37bdb22 Mon Sep 17 00:00:00 2001 From: luke <2736230899@qq.com> Date: Wed, 14 Dec 2022 00:59:54 +0000 Subject: [PATCH 4/4] a better layout --- pandas/core/window/rolling.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/pandas/core/window/rolling.py b/pandas/core/window/rolling.py index 2d8870ba5772d..359682af46c07 100644 --- a/pandas/core/window/rolling.py +++ b/pandas/core/window/rolling.py @@ -1113,7 +1113,7 @@ class Window(BaseWindow): **on** - Rolling sum with a window length of 2 on specific columon. + Rolling sum with a window length of 2 days. >>> df = pd.DataFrame({ ... 'A': [pd.to_datetime('2020-01-01'), @@ -1128,13 +1128,7 @@ class Window(BaseWindow): 2020-01-02 2020-01-01 2 2020-01-03 2020-01-02 3 - >>> df['B'].rolling('2D').sum() # to avoid warning when sum on 'A' - 2020-01-01 1.0 - 2020-01-02 3.0 - 2020-01-03 5.0 - Freq: D, Name: B, dtype: float64 - - >>> df.rolling('2D', on='A').sum() # value of 'B' differs from above + >>> df.rolling('2D', on='A').sum() A B 2020-01-01 2020-01-01 1.0 2020-01-02 2020-01-01 3.0