diff --git a/bigframes/core/indexers.py b/bigframes/core/indexers.py index 6c65077528..f03011c054 100644 --- a/bigframes/core/indexers.py +++ b/bigframes/core/indexers.py @@ -375,7 +375,7 @@ def _perform_loc_list_join( if isinstance(series_or_dataframe, bigframes.series.Series): _struct_accessor_check_and_warn(series_or_dataframe, keys_index) original_name = series_or_dataframe.name - name = series_or_dataframe.name if series_or_dataframe.name is not None else "0" + name = series_or_dataframe.name if series_or_dataframe.name is not None else 0 result = typing.cast( bigframes.series.Series, series_or_dataframe.to_frame()._perform_join_by_index( @@ -468,7 +468,7 @@ def _iloc_getitem_series_or_dataframe( if isinstance(series_or_dataframe, bigframes.series.Series): original_series_name = series_or_dataframe.name series_name = ( - original_series_name if original_series_name is not None else "0" + original_series_name if original_series_name is not None else 0 ) df = series_or_dataframe.to_frame() original_index_names = df.index.names diff --git a/bigframes/series.py b/bigframes/series.py index d311742861..571eee1534 100644 --- a/bigframes/series.py +++ b/bigframes/series.py @@ -1651,7 +1651,7 @@ def to_frame(self, name: blocks.Label = None) -> bigframes.dataframe.DataFrame: provided_name = name if name else self.name # To be consistent with Pandas, it assigns 0 as the column name if missing. 0 is the first element of RangeIndex. block = self._block.with_column_labels( - [provided_name] if provided_name else ["0"] + [provided_name] if provided_name else [0] ) return bigframes.dataframe.DataFrame(block) diff --git a/bigframes/session/__init__.py b/bigframes/session/__init__.py index f2f41b8463..004f5d322b 100644 --- a/bigframes/session/__init__.py +++ b/bigframes/session/__init__.py @@ -922,7 +922,7 @@ def read_pickle( if isinstance(pandas_obj, pandas.Series): if pandas_obj.name is None: - pandas_obj.name = "0" + pandas_obj.name = 0 bigframes_df = self._read_pandas(pandas_obj.to_frame(), "read_pickle") return bigframes_df[bigframes_df.columns[0]] return self._read_pandas(pandas_obj, "read_pickle") diff --git a/tests/system/small/test_series.py b/tests/system/small/test_series.py index c29f91bc5c..696501d1b9 100644 --- a/tests/system/small/test_series.py +++ b/tests/system/small/test_series.py @@ -2790,6 +2790,15 @@ def test_to_frame(scalars_dfs): assert_pandas_df_equal(bf_result, pd_result) +def test_to_frame_no_name(scalars_dfs): + scalars_df, scalars_pandas_df = scalars_dfs + + bf_result = scalars_df["int64_col"].rename(None).to_frame().to_pandas() + pd_result = scalars_pandas_df["int64_col"].rename(None).to_frame() + + assert_pandas_df_equal(bf_result, pd_result) + + def test_to_json(gcs_folder, scalars_df_index, scalars_pandas_df_index): path = gcs_folder + "test_series_to_json*.jsonl" scalars_df_index["int64_col"].to_json(path, lines=True, orient="records")