Skip to content

Commit 580adc9

Browse files
Chang Shewesm
Chang She
authored andcommitted
TST: test cases for replace method. #929
1 parent aad743c commit 580adc9

File tree

3 files changed

+85
-0
lines changed

3 files changed

+85
-0
lines changed

pandas/tests/test_frame.py

+25
Original file line numberDiff line numberDiff line change
@@ -5441,6 +5441,31 @@ def test_bool_raises_value_error_1069(self):
54415441
df = DataFrame([1, 2, 3])
54425442
self.failUnlessRaises(ValueError, lambda: bool(df))
54435443

5444+
def test_replace(self):
5445+
N = 100
5446+
df = DataFrame(np.fabs(np.random.randn(len(N), 5)),
5447+
index=tm.makeDataIndex(N))
5448+
df.ix[:5, 0] = np.nan
5449+
df[6:10, 1] = 'foo'
5450+
df[20:30, 2] = 'bar'
5451+
5452+
rs = df.replace([np.nan, 'foo', 'bar'], -1)
5453+
self.assert_((rs.ix[:5, 0] == -1).all())
5454+
self.assert_((rs.ix[6:10, 1] == -1).all())
5455+
self.assert_((rs.ix[20:30, 2] == -1).all())
5456+
self.assert_((df >= 0).all())
5457+
5458+
rs = df.replace({np.nan : -1, 'foo' : -2, 'bar' : -3})
5459+
self.assert_((rs.ix[:5, 0] == -1).all())
5460+
self.assert_((rs.ix[6:10, 1] == -2).all())
5461+
self.assert_((rs.ix[20:30, 2] == -3).all())
5462+
self.assert_((df >= 0).all())
5463+
5464+
df.replace([np.nan, 'foo', 'bar'], -1, inplace=True)
5465+
self.assert_((df.ix[:5, 0] == -1).all())
5466+
self.assert_((df.ix[6:10, 1] == -1).all())
5467+
self.assert_((df.ix[20:30, 2] == -1).all())
5468+
54445469
if __name__ == '__main__':
54455470
# unittest.main()
54465471
import nose

pandas/tests/test_panel.py

+37
Original file line numberDiff line numberDiff line change
@@ -1294,6 +1294,43 @@ def test_pivot(self):
12941294
# corner case, empty
12951295
df = pivot(np.array([]), np.array([]), np.array([]))
12961296

1297+
def test_replace(self):
1298+
N = 100
1299+
df1 = DataFrame(np.fabs(np.random.randn(len(N), 5)),
1300+
index=tm.makeDataIndex(N))
1301+
df1.ix[:5, 0] = np.nan
1302+
df1[6:10, 1] = 'foo'
1303+
df1[20:30, 2] = 'bar'
1304+
1305+
df2 = DataFrame(np.fabs(np.random.randn(len(N), 5)),
1306+
index=tm.makeDataIndex(N))
1307+
df2.ix[:5, 0] = 'bar'
1308+
df2[6:10, 1] = np.nan
1309+
df2[20:30, 2] = 'foo'
1310+
1311+
panel = Panel({'x' : df1, 'y' : df2})
1312+
rs = panel.replace([np.nan, 'foo', 'bar'], -1)
1313+
self.assert_((rs.ix[:, :5, 0] == -1).all())
1314+
self.assert_((rs.ix[:, 6:10, 1] == -1).all())
1315+
self.assert_((rs.ix[:, 20:30, 2] == -1).all())
1316+
self.assert_((panel >= 0).all())
1317+
1318+
rs = panel.replace({np.nan : -1, 'foo' : -2, 'bar' : -3})
1319+
self.assert_((rs.ix[0, :5, 0] == -1).all())
1320+
self.assert_((rs.ix[0, 6:10, 1] == -2).all())
1321+
self.assert_((rs.ix[0, 20:30, 2] == -3).all())
1322+
1323+
self.assert_((rs.ix[1, :5, 0] == -3).all())
1324+
self.assert_((rs.ix[1, 6:10, 1] == -1).all())
1325+
self.assert_((rs.ix[1, 20:30, 2] == -2).all())
1326+
1327+
self.assert_((panel >= 0).all())
1328+
1329+
panel.replace([np.nan, 'foo', 'bar'], -1, inplace=True)
1330+
self.assert_((panel.ix[:5, 0] == -1).all())
1331+
self.assert_((panel.ix[6:10, 1] == -1).all())
1332+
self.assert_((panel.ix[20:30, 2] == -1).all())
1333+
12971334
def test_monotonic():
12981335
pos = np.array([1, 2, 3, 5])
12991336

pandas/tests/test_series.py

+23
Original file line numberDiff line numberDiff line change
@@ -2647,6 +2647,29 @@ def test_timeseries_coercion(self):
26472647
self.assert_(isinstance(ser, TimeSeries))
26482648
self.assert_(isinstance(ser.index, DatetimeIndex))
26492649

2650+
def test_replace(self):
2651+
N = 100
2652+
ser = Series(np.fabs(np.random.randn(len(N))), tm.makeDataIndex(N))
2653+
ser[:5] = np.nan
2654+
ser[6:10] = 'foo'
2655+
ser[20:30] = 'bar'
2656+
2657+
rs = ser.replace([np.nan, 'foo', 'bar'], -1)
2658+
self.assert_((rs[:5] == -1).all())
2659+
self.assert_((rs[6:10] == -1).all())
2660+
self.assert_((rs[20:30] == -1).all())
2661+
self.assert_((ser >= 0).all())
2662+
2663+
rs = ser.replace({np.nan : -1, 'foo' : -2, 'bar' : -3})
2664+
self.assert_((rs[:5] == -1).all())
2665+
self.assert_((rs[6:10] == -2).all())
2666+
self.assert_((rs[20:30] == -3).all())
2667+
self.assert_((ser >= 0).all())
2668+
2669+
ser.replace([np.nan, 'foo', 'bar'], -1, inplace=True)
2670+
self.assert_((ser[:5] == -1).all())
2671+
self.assert_((ser[6:10] == -1).all())
2672+
self.assert_((ser[20:30] == -1).all())
26502673
def test_repeat(self):
26512674
s = Series(np.random.randn(3), index=['a', 'b', 'c'])
26522675

0 commit comments

Comments
 (0)