|
1 | 1 | # pylint: disable-msg=W0612,E1101,W0141
|
| 2 | +import datetime |
2 | 3 | import nose
|
3 | 4 |
|
4 | 5 | from numpy.random import randn
|
@@ -70,6 +71,46 @@ def test_append(self):
|
70 | 71 | result = a['A'].append(b['A'])
|
71 | 72 | tm.assert_series_equal(result, self.frame['A'])
|
72 | 73 |
|
| 74 | + def test_append_index(self): |
| 75 | + |
| 76 | + idx1 = Index([1.1, 1.2, 1.3]) |
| 77 | + idx2 = pd.date_range('2011-01-01', freq='D', periods=3, tz='Asia/Tokyo') |
| 78 | + idx3 = Index(['A', 'B', 'C']) |
| 79 | + |
| 80 | + midx_lv2 = MultiIndex.from_arrays([idx1, idx2]) |
| 81 | + midx_lv3 = MultiIndex.from_arrays([idx1, idx2, idx3]) |
| 82 | + |
| 83 | + result = idx1.append(midx_lv2) |
| 84 | + expected = Index([1.1, 1.2, 1.3, |
| 85 | + (1.1, datetime.datetime(2010, 12, 31, 15, 0)), |
| 86 | + (1.2, datetime.datetime(2011, 1, 1, 15, 0)), |
| 87 | + (1.3, datetime.datetime(2011, 1, 2, 15, 0))]) |
| 88 | + self.assert_(result.equals(expected)) |
| 89 | + |
| 90 | + result = midx_lv2.append(idx1) |
| 91 | + expected = Index([(1.1, datetime.datetime(2010, 12, 31, 15, 0)), |
| 92 | + (1.2, datetime.datetime(2011, 1, 1, 15, 0)), |
| 93 | + (1.3, datetime.datetime(2011, 1, 2, 15, 0)), |
| 94 | + 1.1, 1.2, 1.3]) |
| 95 | + self.assert_(result.equals(expected)) |
| 96 | + |
| 97 | + result = midx_lv2.append(midx_lv2) |
| 98 | + expected = MultiIndex.from_arrays([idx1.append(idx1), idx2.append(idx2)]) |
| 99 | + self.assert_(result.equals(expected)) |
| 100 | + |
| 101 | + result = midx_lv2.append(midx_lv3) |
| 102 | + self.assert_(result.equals(expected)) |
| 103 | + |
| 104 | + result = midx_lv3.append(midx_lv2) |
| 105 | + expected = Index._simple_new( |
| 106 | + np.array([(1.1, datetime.datetime(2010, 12, 31, 15, 0), 'A'), |
| 107 | + (1.2, datetime.datetime(2011, 1, 1, 15, 0), 'B'), |
| 108 | + (1.3, datetime.datetime(2011, 1, 2, 15, 0), 'C'), |
| 109 | + (1.1, datetime.datetime(2010, 12, 31, 15, 0)), |
| 110 | + (1.2, datetime.datetime(2011, 1, 1, 15, 0)), |
| 111 | + (1.3, datetime.datetime(2011, 1, 2, 15, 0))]), None) |
| 112 | + self.assert_(result.equals(expected)) |
| 113 | + |
73 | 114 | def test_dataframe_constructor(self):
|
74 | 115 | multi = DataFrame(np.random.randn(4, 4),
|
75 | 116 | index=[np.array(['a', 'a', 'b', 'b']),
|
|
0 commit comments