Skip to content

Commit 5d922b7

Browse files
committed
Merge pull request #4459 from danbirken/panel-instance-name-fix
BUG: Fix Panel instance variable namespace issue GH3440
2 parents 52712e2 + 141b831 commit 5d922b7

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

doc/source/release.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ pandas 0.13
121121
(:issue:`4405`, :issue:`4437`)
122122
- Fixed a py3 compat issue where bytes were being repr'd as tuples
123123
(:issue:`4455`)
124+
- Fixed Panel attribute naming conflict if item is named 'a'
125+
(:issue:`3440`)
124126

125127
pandas 0.12
126128
===========

pandas/core/panel.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,12 +165,12 @@ class Panel(NDFrame):
165165
"""
166166

167167
_AXIS_ORDERS = ['items', 'major_axis', 'minor_axis']
168-
_AXIS_NUMBERS = dict([(a, i) for i, a in enumerate(_AXIS_ORDERS)])
168+
_AXIS_NUMBERS = dict((a, i) for i, a in enumerate(_AXIS_ORDERS))
169169
_AXIS_ALIASES = {
170170
'major': 'major_axis',
171171
'minor': 'minor_axis'
172172
}
173-
_AXIS_NAMES = dict([(i, a) for i, a in enumerate(_AXIS_ORDERS)])
173+
_AXIS_NAMES = dict(enumerate(_AXIS_ORDERS))
174174
_AXIS_SLICEMAP = {
175175
'major_axis': 'index',
176176
'minor_axis': 'columns'

pandas/tests/test_panel.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1340,6 +1340,12 @@ def test_rename(self):
13401340
def test_get_attr(self):
13411341
assert_frame_equal(self.panel['ItemA'], self.panel.ItemA)
13421342

1343+
# specific cases from #3440
1344+
self.panel['a'] = self.panel['ItemA']
1345+
assert_frame_equal(self.panel['a'], self.panel.a)
1346+
self.panel['i'] = self.panel['ItemA']
1347+
assert_frame_equal(self.panel['i'], self.panel.i)
1348+
13431349
def test_group_agg(self):
13441350
values = np.ones((10, 2)) * np.arange(10).reshape((10, 1))
13451351
bounds = np.arange(5) * 2

0 commit comments

Comments
 (0)