From 828df86c375cd21f6f8fce88597a7fdadbb022ca Mon Sep 17 00:00:00 2001 From: Jai Fadia Date: Fri, 22 Sep 2023 01:58:31 +0000 Subject: [PATCH 1/3] Fix doc for first_valid_index --- pandas/core/generic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 5c303e2a73bd7..01ac4aa9b0961 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -12451,7 +12451,7 @@ def first_valid_index(self) -> Hashable | None: Notes ----- - If all elements are non-NA/null, returns None. + If all elements are NA/null, returns None. Also returns None for empty {klass}. Examples From f0c83dd9345f1addede1d771f78b334fc7f9af1a Mon Sep 17 00:00:00 2001 From: jfadia Date: Fri, 22 Sep 2023 21:20:32 +0000 Subject: [PATCH 2/3] Replace notes with examples --- pandas/core/generic.py | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index acdf779af1476..10664833accd5 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -12466,11 +12466,6 @@ def first_valid_index(self) -> Hashable | None: ------- type of index - Notes - ----- - If all elements are NA/null, returns None. - Also returns None for empty {klass}. - Examples -------- For Series: @@ -12481,6 +12476,18 @@ def first_valid_index(self) -> Hashable | None: >>> s.last_valid_index() 2 + >>> s = pd.Series([None, None]) + >>> s.first_valid_index() + >>> s.last_valid_index() + + If all elements in Series are NA/null, returns None. + + >>> s = pd.Series() + >>> s.first_valid_index() + >>> s.last_valid_index() + + If Series is empty, returns None. + For DataFrame: >>> df = pd.DataFrame({{'A': [None, None, 2], 'B': [None, 3, 4]}}) @@ -12493,6 +12500,27 @@ def first_valid_index(self) -> Hashable | None: 1 >>> df.last_valid_index() 2 + + >>> df = pd.DataFrame({{'A': [None, None, None], 'B': [None, None, None]}}) + >>> df + A B + 0 None None + 1 None None + 2 None None + >>> df.first_valid_index() + >>> df.last_valid_index() + + If all elements in DataFrame are NA/null, returns None. + + >>> df = pd.DataFrame() + >>> df + Empty DataFrame + Columns: [] + Index: [] + >>> df.first_valid_index() + >>> df.last_valid_index() + + If DataFrame is empty, returns None. """ return self._find_valid_index(how="first") From 2d13c97767da9c0a144c4fc5d99d62d3e7ff6e97 Mon Sep 17 00:00:00 2001 From: jfadia Date: Fri, 22 Sep 2023 21:38:37 +0000 Subject: [PATCH 3/3] Add explicit prints --- pandas/core/generic.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 10664833accd5..427687d9614f9 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -12477,14 +12477,18 @@ def first_valid_index(self) -> Hashable | None: 2 >>> s = pd.Series([None, None]) - >>> s.first_valid_index() - >>> s.last_valid_index() + >>> print(s.first_valid_index()) + None + >>> print(s.last_valid_index()) + None If all elements in Series are NA/null, returns None. >>> s = pd.Series() - >>> s.first_valid_index() - >>> s.last_valid_index() + >>> print(s.first_valid_index()) + None + >>> print(s.last_valid_index()) + None If Series is empty, returns None. @@ -12507,8 +12511,10 @@ def first_valid_index(self) -> Hashable | None: 0 None None 1 None None 2 None None - >>> df.first_valid_index() - >>> df.last_valid_index() + >>> print(df.first_valid_index()) + None + >>> print(df.last_valid_index()) + None If all elements in DataFrame are NA/null, returns None. @@ -12517,8 +12523,10 @@ def first_valid_index(self) -> Hashable | None: Empty DataFrame Columns: [] Index: [] - >>> df.first_valid_index() - >>> df.last_valid_index() + >>> print(df.first_valid_index()) + None + >>> print(df.last_valid_index()) + None If DataFrame is empty, returns None. """