Skip to content

Commit 96f25f9

Browse files
committed
TST: testing + docstring for DataFrame/Panel.get function, per #521
1 parent bd2e92b commit 96f25f9

File tree

4 files changed

+28
-8
lines changed

4 files changed

+28
-8
lines changed

RELEASE.rst

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ pandas 0.6.2
4040
- Handle differently-indexed output values in ``DataFrame.apply`` (GH #498)
4141
- Can pass list of dicts (e.g., a list of shallow JSON objects) to DataFrame
4242
constructor (GH #526)
43-
- Add `reorder_levels` method to Series and DataFrame (PR #534)
43+
- Add ``reorder_levels`` method to Series and DataFrame (PR #534)
44+
- Add dict-like ``get`` function to DataFrame and Panel (PR #521)
4445

4546
**Improvements to existing features**
4647

pandas/core/frame.py

-7
Original file line numberDiff line numberDiff line change
@@ -1215,13 +1215,6 @@ def pop(self, item):
12151215
"""
12161216
return NDFrame.pop(self, item)
12171217

1218-
def get(self, column, default=None):
1219-
try:
1220-
return self[column]
1221-
except KeyError:
1222-
return default
1223-
1224-
12251218
# to support old APIs
12261219
@property
12271220
def _series(self):

pandas/core/generic.py

+18
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,24 @@ def _get_axis(self, axis):
6161
name = self._get_axis_name(axis)
6262
return getattr(self, name)
6363

64+
def get(self, key, default=None):
65+
"""
66+
Get item from object for given key (DataFrame column, Panel slice,
67+
etc.). Returns default value if not found
68+
69+
Parameters
70+
----------
71+
key : object
72+
73+
Returns
74+
-------
75+
value : type of items contained in object
76+
"""
77+
try:
78+
return self[key]
79+
except KeyError:
80+
return default
81+
6482
def groupby(self, by=None, axis=0, level=None, as_index=True):
6583
"""
6684
Group series using mapper (dict or key function, apply given function

pandas/tests/test_frame.py

+8
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,14 @@ def test_getitem(self):
5151
self.assert_('random' not in self.frame)
5252
self.assertRaises(Exception, self.frame.__getitem__, 'random')
5353

54+
def test_get(self):
55+
b = self.frame.get('B')
56+
assert_series_equal(b, self.frame['B'])
57+
58+
self.assert_(self.frame.get('foo') is None)
59+
assert_series_equal(self.frame.get('foo', self.frame['B']),
60+
self.frame['B'])
61+
5462
def test_getitem_iterator(self):
5563
idx = iter(['A', 'B', 'C'])
5664
result = self.frame.ix[:, idx]

0 commit comments

Comments
 (0)