Skip to content

Commit f325e09

Browse files
committed
Added tests for DataFrame alongside Series
1 parent 88bca04 commit f325e09

File tree

2 files changed

+44
-19
lines changed

2 files changed

+44
-19
lines changed

pandas/core/indexing.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2019,7 +2019,7 @@ def __setitem__(self, key, value):
20192019
key = list(self._convert_key(key, is_setter=True))
20202020
if len(key) != self.ndim:
20212021
raise ValueError("Not enough indexers for scalar access (setting)!")
2022-
2022+
20232023
self.obj._set_value(*key, value=value, takeable=self._takeable)
20242024

20252025

pandas/tests/indexing/test_scalar.py

+43-18
Original file line numberDiff line numberDiff line change
@@ -353,38 +353,63 @@ def test_iat_series_with_period_index():
353353
assert expected == result
354354

355355

356-
def test_tuple_indexed_series_at_get():
356+
def test_at_with_tuple_index_get():
357357
# GH 26989
358-
# Series.at works with index of tuples
359-
series = Series([1, 2], index=[(1, 2), (3, 4)])
358+
# DataFrame.at getter works with Index of tuples
359+
df = DataFrame({"a": [1, 2]}, index=[(1, 2), (3, 4)])
360+
assert df.index.nlevels == 1
361+
assert df.at[(1, 2), "a"] == 1
362+
363+
# Series.at getter works with Index of tuples
364+
series = df["a"]
360365
assert series.index.nlevels == 1
361-
assert series.at[1, 2] == 1
366+
assert series.at[(1, 2)] == 1
362367

363368

364-
def test_tuple_indexed_series_at_set():
369+
def test_at_with_tuple_index_set():
365370
# GH 26989
366-
# Series.at works with index of tuples
367-
series = Series([1, 2], index=[(1, 2), (3, 4)])
368-
series.at[1, 2] = 3
371+
# DataFrame.at setter works with Index of tuples
372+
df = DataFrame({"a": [1, 2]}, index=[(1, 2), (3, 4)])
373+
assert df.index.nlevels == 1
374+
df.at[(1, 2), "a"] = 2
375+
assert df.at[(1, 2), "a"] == 2
376+
377+
# Series.at setter works with Index of tuples
378+
series = df["a"]
369379
assert series.index.nlevels == 1
380+
series.at[1, 2] = 3
370381
assert series.at[1, 2] == 3
371382

372383

373-
def test_multiindex_series_at_get():
384+
def test_multiindex_at_get():
374385
# GH 26989
375-
# Series.at works with MultiIndex
376-
series = Series([1, 2], index=[[1, 2], [3, 4]])
386+
# DataFrame.at and DataFrame.loc getter works with MultiIndex
387+
df = DataFrame({"a": [1, 2]}, index=[[1, 2], [3, 4]])
388+
assert df.index.nlevels == 2
389+
assert df.at[(1, 3), "a"] == 1
390+
assert df.loc[(1, 3), "a"] == 1
391+
392+
# Series.at and Series.loc getter works with MultiIndex
393+
series = df["a"]
377394
assert series.index.nlevels == 2
378395
assert series.at[1, 3] == 1
379396
assert series.loc[1, 3] == 1
380397

381398

382-
def test_multiindex_series_at_set():
399+
def test_multiindex_at_set():
383400
# GH 26989
384-
# Series.at works with MultiIndex
385-
series = Series([1, 2], index=[[1, 2], [3, 4]])
401+
# DataFrame.at and DataFrame.loc setter works with MultiIndex
402+
df = DataFrame({"a": [1, 2]}, index=[[1, 2], [3, 4]])
403+
assert df.index.nlevels == 2
404+
df.at[(1, 3), "a"] = 3
405+
assert df.at[(1, 3), "a"] == 3
406+
df.loc[(1, 3), "a"] = 4
407+
assert df.loc[(1, 3), "a"] == 4
408+
409+
# Series.at and Series.loc setter works with MultiIndex
410+
series = df["a"]
386411
assert series.index.nlevels == 2
387-
series.at[1, 3] = 3
388-
assert series.at[1, 3] == 3
389-
series.loc[1, 3] = 4
390-
assert series.loc[1, 3] == 4
412+
series.at[1, 3] = 5
413+
assert series.at[1, 3] == 5
414+
series.loc[1, 3] = 6
415+
assert series.loc[1, 3] == 6

0 commit comments

Comments
 (0)