From b62f1ca218035bce87f5adf1671ec8662e87f6da Mon Sep 17 00:00:00 2001 From: Matthew Laurence Chen Date: Mon, 5 Aug 2024 18:38:33 -0400 Subject: [PATCH 1/3] chore: clean up OWNERS - remove inactive users - add myself --- OWNERS | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/OWNERS b/OWNERS index f86ad551ef..562ee0f19b 100644 --- a/OWNERS +++ b/OWNERS @@ -1,12 +1,8 @@ -ashleyxu@google.com -bmil@google.com chelsealin@google.com garrettwu@google.com -henryjsolberg@google.com -hormati@google.com huanc@google.com jiaxun@google.com -kemppeterson@google.com +mlaurencechen@google.com shobs@google.com swast@google.com -tbergeron@google.com +tbergeron@google.com \ No newline at end of file From cd97a4552753957e76dd5a332ffef4b964073c86 Mon Sep 17 00:00:00 2001 From: Matthew Laurence Chen Date: Thu, 8 Aug 2024 00:26:09 +0000 Subject: [PATCH 2/3] feat: support `Index.to_frame()` --- bigframes/core/indexes/base.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/bigframes/core/indexes/base.py b/bigframes/core/indexes/base.py index 0376e37f96..a043a7f089 100644 --- a/bigframes/core/indexes/base.py +++ b/bigframes/core/indexes/base.py @@ -114,6 +114,17 @@ def from_frame( index = Index(frame._block) index._linked_frame = frame return index + + def to_frame( + self, index: bool = True, name: blocks.Label | None = None + ) -> bigframes.dataframe.DataFrame: + import numpy as np + provided_name = name if name else self.name + provided_index = self.values if index else np.arange(len(self.values)) + result = bigframes.dataframe.DataFrame({provided_name: self.values}, index= provided_index) + if index: # matching pandas behavior + result.index.name = self.name + return result @property def _session(self): From 8761d8a76f8f52dd420b9fbca8b3bb13a762e3ee Mon Sep 17 00:00:00 2001 From: Matthew Laurence Chen Date: Thu, 8 Aug 2024 00:26:09 +0000 Subject: [PATCH 3/3] feat: support `Index.to_frame()` --- bigframes/core/indexes/base.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/bigframes/core/indexes/base.py b/bigframes/core/indexes/base.py index 0376e37f96..8ae0f423c2 100644 --- a/bigframes/core/indexes/base.py +++ b/bigframes/core/indexes/base.py @@ -115,6 +115,21 @@ def from_frame( index._linked_frame = frame return index + def to_frame( + self, index: bool = True, name: blocks.Label | None = None + ) -> bigframes.dataframe.DataFrame: + import numpy as np + + provided_name = name if name else self.name + provided_index = self.values if index else np.arange(len(self.values)) + result = bigframes.dataframe.DataFrame( + {provided_name: self.values}, index=provided_index + ) + if index: # matching pandas behavior + result.index.name = self.name + + return result + @property def _session(self): return self._block.session