@@ -1294,6 +1294,43 @@ def test_pivot(self):
1294
1294
# corner case, empty
1295
1295
df = pivot (np .array ([]), np .array ([]), np .array ([]))
1296
1296
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
+
1297
1334
def test_monotonic ():
1298
1335
pos = np .array ([1 , 2 , 3 , 5 ])
1299
1336
0 commit comments