From 89259dbf74a9fd2e6f9f0879aeb116865a015e09 Mon Sep 17 00:00:00 2001 From: Kiley <> Date: Fri, 19 Mar 2021 15:42:09 -0400 Subject: [PATCH 1/6] if/else changes test --- pandas/core/series.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/core/series.py b/pandas/core/series.py index e1a6c6884e003..247aed47a2ffc 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -4737,8 +4737,8 @@ def between(self, left, right, inclusive=True) -> Series: dtype: bool """ if inclusive: - lmask = self >= left - rmask = self <= right + lmask = self > left + rmask = self < right else: lmask = self > left rmask = self < right From eda20a1f16da32e0cb95747e877c52bad8722845 Mon Sep 17 00:00:00 2001 From: Kiley <> Date: Sun, 21 Mar 2021 17:41:09 -0400 Subject: [PATCH 2/6] Series.between changes to inclusive boundaries --- pandas/core/series.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/pandas/core/series.py b/pandas/core/series.py index 247aed47a2ffc..3257cd7ab161e 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -4670,7 +4670,7 @@ def isin(self, values) -> Series: self, method="isin" ) - def between(self, left, right, inclusive=True) -> Series: + def between(self, left, right, inclusive="True") -> Series: """ Return boolean Series equivalent to left <= series <= right. @@ -4736,12 +4736,21 @@ def between(self, left, right, inclusive=True) -> Series: 3 False dtype: bool """ - if inclusive: - lmask = self > left + + if inclusive == "True" or inclusive == "both": + lmask = self >= left + rmask = self <= right + elif inclusive == "left": + lmask = self >= left rmask = self < right - else: + elif inclusive == "right": + lmask = self > left + rmask = self <= right + elif inclusive == "False" or inclusive == "neither": lmask = self > left rmask = self < right + else: + print("Invalid inclusive input: string input of 'True', 'False' 'left', 'right', 'neither', or 'both' should be submitted") return lmask & rmask From 7af55a72c76b0c2db4a375e2fa8a0ac87556bc77 Mon Sep 17 00:00:00 2001 From: Kiley <> Date: Tue, 23 Mar 2021 20:41:58 -0400 Subject: [PATCH 3/6] changes to date_range parameters --- pandas/core/arrays/datetimelike.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pandas/core/arrays/datetimelike.py b/pandas/core/arrays/datetimelike.py index 633a20d6bed37..21a1a7d9ebf5f 100644 --- a/pandas/core/arrays/datetimelike.py +++ b/pandas/core/arrays/datetimelike.py @@ -1830,13 +1830,16 @@ def validate_endpoints(closed): left_closed = False right_closed = False - if closed is None: + if closed is None or closed == "True": left_closed = True right_closed = True elif closed == "left": left_closed = True elif closed == "right": right_closed = True + elif closed == "both" or closed == "False": + left_closed = False + right_closed = False else: raise ValueError("Closed has to be either 'left', 'right' or None") From 85a33ccfd030a13cc2d3ce4e80d57c1ed179c8ed Mon Sep 17 00:00:00 2001 From: Kiley <> Date: Tue, 23 Mar 2021 21:02:26 -0400 Subject: [PATCH 4/6] Changed series.between error handling to throw value error instead of simple print statement --- pandas/core/series.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/core/series.py b/pandas/core/series.py index 3257cd7ab161e..044f269020875 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -4746,11 +4746,11 @@ def between(self, left, right, inclusive="True") -> Series: elif inclusive == "right": lmask = self > left rmask = self <= right - elif inclusive == "False" or inclusive == "neither": + elif inclusive == "False": lmask = self > left rmask = self < right else: - print("Invalid inclusive input: string input of 'True', 'False' 'left', 'right', 'neither', or 'both' should be submitted") + raise ValueError("Invalid inclusive input: string input of 'True', 'False' 'left', 'right', or 'both' should be submitted") return lmask & rmask From c87e2409a4823e687e59a71a0d0639219d1ed439 Mon Sep 17 00:00:00 2001 From: Kiley <> Date: Wed, 24 Mar 2021 14:23:25 -0400 Subject: [PATCH 5/6] changes to series.between documentation and error message --- pandas/core/series.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas/core/series.py b/pandas/core/series.py index 044f269020875..2a327940e3a6e 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -4684,7 +4684,8 @@ def between(self, left, right, inclusive="True") -> Series: Left boundary. right : scalar or list-like Right boundary. - inclusive : bool, default True + inclusive : str, default "True" + Include boundaries. Returns @@ -4750,7 +4751,7 @@ def between(self, left, right, inclusive="True") -> Series: lmask = self > left rmask = self < right else: - raise ValueError("Invalid inclusive input: string input of 'True', 'False' 'left', 'right', or 'both' should be submitted") + raise ValueError("String input of 'True', 'both' 'False' 'left', 'right', should be submitted") return lmask & rmask From 4ebfa59ab611978fc18bf15203811e851c729a04 Mon Sep 17 00:00:00 2001 From: Kiley <> Date: Wed, 24 Mar 2021 23:33:42 -0400 Subject: [PATCH 6/6] parameters as either booleans or strings --- pandas/core/arrays/datetimelike.py | 6 +++--- pandas/core/series.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pandas/core/arrays/datetimelike.py b/pandas/core/arrays/datetimelike.py index 21a1a7d9ebf5f..500fb789f183d 100644 --- a/pandas/core/arrays/datetimelike.py +++ b/pandas/core/arrays/datetimelike.py @@ -1830,18 +1830,18 @@ def validate_endpoints(closed): left_closed = False right_closed = False - if closed is None or closed == "True": + if closed is None or closed == True or closed == "neither": left_closed = True right_closed = True elif closed == "left": left_closed = True elif closed == "right": right_closed = True - elif closed == "both" or closed == "False": + elif closed == "both" or closed == False: left_closed = False right_closed = False else: - raise ValueError("Closed has to be either 'left', 'right' or None") + raise ValueError("Closed has to be either 'left', 'right', 'neither', 'both' or None, or a boolean value") return left_closed, right_closed diff --git a/pandas/core/series.py b/pandas/core/series.py index 2a327940e3a6e..b5c18a52287e4 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -4670,7 +4670,7 @@ def isin(self, values) -> Series: self, method="isin" ) - def between(self, left, right, inclusive="True") -> Series: + def between(self, left, right, inclusive=True) -> Series: """ Return boolean Series equivalent to left <= series <= right. @@ -4738,7 +4738,7 @@ def between(self, left, right, inclusive="True") -> Series: dtype: bool """ - if inclusive == "True" or inclusive == "both": + if inclusive == True or inclusive == "both": lmask = self >= left rmask = self <= right elif inclusive == "left": @@ -4747,11 +4747,11 @@ def between(self, left, right, inclusive="True") -> Series: elif inclusive == "right": lmask = self > left rmask = self <= right - elif inclusive == "False": + elif inclusive == False or inclusive == "neither": lmask = self > left rmask = self < right else: - raise ValueError("String input of 'True', 'both' 'False' 'left', 'right', should be submitted") + raise ValueError("Input should be boolean or string of 'both', 'left', 'right', or 'neither'") return lmask & rmask