Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
12 changes: 12 additions & 0 deletions bigframes/core/indexers.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,18 @@ def __getitem__(
) -> Union[bigframes.core.scalar.Scalar, bigframes.series.Series]:
return self._series.loc[key]

def __setitem__(
self,
key: LocSingleKey,
value: bigframes.core.scalar.Scalar,
):
if not pd.api.types.is_scalar(value):
raise NotImplementedError(
"series.at.__setitem__ only supports scalar right-hand values. "
f"{constants.FEEDBACK_LINK}"
)
self._series.loc[key] = value


class LocDataFrameIndexer:
def __init__(self, dataframe: bigframes.dataframe.DataFrame):
Expand Down
11 changes: 11 additions & 0 deletions tests/system/small/test_series.py
Original file line number Diff line number Diff line change
Expand Up @@ -1012,6 +1012,17 @@ def test_loc_setitem_cell(scalars_df_index, scalars_pandas_df_index):
pd.testing.assert_series_equal(bf_original.to_pandas(), pd_original)


def test_at_setitem_row_label_scalar(scalars_dfs):
scalars_df, scalars_pandas_df = scalars_dfs
bf_series = scalars_df["int64_col"]
pd_series = scalars_pandas_df["int64_col"].copy()
bf_series.at[1] = 1000
pd_series.at[1] = 1000
bf_result = bf_series.to_pandas()
pd_result = pd_series.astype("Int64")
pd.testing.assert_series_equal(bf_result, pd_result)


def test_ne_obj_series(scalars_dfs):
scalars_df, scalars_pandas_df = scalars_dfs
col_name = "string_col"
Expand Down