Skip to content

Commit 7ea39cc

Browse files
lexualqwhelan
authored andcommitted
dropna method added to Index.
ref pandas-dev#6194 ref pandas-dev#7784
1 parent 35d0893 commit 7ea39cc

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

pandas/core/index.py

+10
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,16 @@ def is_(self, other):
248248
# use something other than None to be clearer
249249
return self._id is getattr(other, '_id', Ellipsis)
250250

251+
def dropna(self):
252+
"""
253+
Return Index without null values
254+
255+
Returns
256+
-------
257+
dropped : Index
258+
"""
259+
return self[~isnull(self.values)]
260+
251261
def _reset_identity(self):
252262
"""Initializes or resets ``_id`` attribute with new object"""
253263
self._id = _Identity()

pandas/tests/test_index.py

+30
Original file line numberDiff line numberDiff line change
@@ -1257,6 +1257,14 @@ def get_reindex_type(target):
12571257
self.assertEqual(reindexed.levels[0].dtype.type, np.int64)
12581258
self.assertEqual(reindexed.levels[1].dtype.type, np.float64)
12591259

1260+
def test_dropna(self):
1261+
idx = Index([np.nan, 'a', np.nan, np.nan, 'b', 'c', np.nan],
1262+
name='idx')
1263+
expected = Index(['a', 'b', 'c'], name='idx')
1264+
result = idx.dropna()
1265+
tm.assert_index_equal(result, expected)
1266+
1267+
12601268
def test_groupby(self):
12611269
idx = Index(range(5))
12621270
groups = idx.groupby(np.array([1,1,2,2,2]))
@@ -1513,6 +1521,12 @@ def test_astype_from_object(self):
15131521
tm.assert_equal(result.dtype, expected.dtype)
15141522
tm.assert_index_equal(result, expected)
15151523

1524+
def test_dropna(self):
1525+
idx = Float64Index([np.nan, 1.0, np.nan, np.nan, 2.0, 3.0, np.nan])
1526+
expected = Float64Index([1.0, 2.0, 3.0])
1527+
result = idx.dropna()
1528+
tm.assert_index_equal(result, expected)
1529+
15161530

15171531
class TestInt64Index(Numeric, tm.TestCase):
15181532
_holder = Int64Index
@@ -2085,6 +2099,14 @@ def test_time_loc(self): # GH8667
20852099

20862100
tm.assert_array_equal(ts.index.get_loc(key), i)
20872101
tm.assert_series_equal(ts[key], ts.iloc[i])
2102+
=======
2103+
def test_dropna_does_nothing(self):
2104+
idx = Int64Index([1, 2, 3], name='idx')
2105+
expected = Int64Index([1, 2, 3], name='idx')
2106+
result = idx.dropna()
2107+
tm.assert_index_equal(result, expected)
2108+
2109+
>>>>>>> dropna method added to Index.
20882110

20892111
left, right = ts.copy(), ts.copy()
20902112
left[key] *= -10
@@ -3890,6 +3912,7 @@ def test_level_setting_resets_attributes(self):
38903912
# if this fails, probably didn't reset the cache correctly.
38913913
assert not ind.is_monotonic
38923914

3915+
<<<<<<< HEAD
38933916
def test_isin(self):
38943917
values = [('foo', 2), ('bar', 3), ('quux', 4)]
38953918

@@ -3988,6 +4011,13 @@ def test_groupby(self):
39884011
groups = self.index.groupby(self.index)
39894012
exp = dict((key, [key]) for key in self.index)
39904013
tm.assert_dict_equal(groups, exp)
4014+
=======
4015+
def test_dropna_does_nothing(self):
4016+
idx = MultiIndex.from_tuples([('bar', 'two')])
4017+
expected = idx
4018+
result = idx.dropna()
4019+
tm.assert_index_equal(result, expected)
4020+
>>>>>>> dropna method added to Index.
39914021

39924022

39934023
def test_get_combined_index():

0 commit comments

Comments
 (0)