diff --git a/bigframes/core/blocks.py b/bigframes/core/blocks.py index e45d945e23..6f87e43821 100644 --- a/bigframes/core/blocks.py +++ b/bigframes/core/blocks.py @@ -426,7 +426,7 @@ def reset_index( A new Block because dropping index columns can break references from Index classes that point to this block. """ - if level: + if level is not None: # preserve original order, not user provided order level_ids: Sequence[str] = [ id for id in self.index_columns if id in self.index.resolve_level(level) diff --git a/bigframes/dataframe.py b/bigframes/dataframe.py index 2206db9bf6..b9143f2f19 100644 --- a/bigframes/dataframe.py +++ b/bigframes/dataframe.py @@ -2577,7 +2577,7 @@ def reset_index( names: Union[None, Hashable, Sequence[Hashable]] = None, ) -> Optional[DataFrame]: block = self._block - if names: + if names is not None: if isinstance(names, blocks.Label) and not isinstance(names, tuple): names = [names] else: diff --git a/tests/system/small/test_multiindex.py b/tests/system/small/test_multiindex.py index 3a86d5f6c5..4233ed7aae 100644 --- a/tests/system/small/test_multiindex.py +++ b/tests/system/small/test_multiindex.py @@ -110,6 +110,7 @@ def test_set_multi_index(scalars_df_index, scalars_pandas_df_index): ("bool_col", True), (["float64_col", "int64_too"], True), ([2, 0], False), + (0, True), ], ) def test_df_reset_multi_index(scalars_df_index, scalars_pandas_df_index, level, drop): @@ -124,7 +125,7 @@ def test_df_reset_multi_index(scalars_df_index, scalars_pandas_df_index, level, # Pandas uses int64 instead of Int64 (nullable) dtype. if pd_result.index.dtype != bf_result.index.dtype: - pd_result.index = pd_result.index.astype(pandas.Int64Dtype()) + pd_result.index = pd_result.index.astype(bf_result.index.dtype) pandas.testing.assert_frame_equal(bf_result, pd_result)