12
12
import pandas ._testing as tm
13
13
14
14
15
+ @pytest .mark .filterwarnings ("ignore:.*append method is deprecated.*:FutureWarning" )
15
16
class TestDataFrameAppend :
16
17
def test_append_multiindex (self , multiindex_dataframe_random_data , frame_or_series ):
17
18
obj = multiindex_dataframe_random_data
@@ -21,22 +22,19 @@ def test_append_multiindex(self, multiindex_dataframe_random_data, frame_or_seri
21
22
a = obj [:5 ]
22
23
b = obj [5 :]
23
24
24
- with tm .assert_produces_warning (FutureWarning ):
25
- result = a .append (b )
25
+ result = a .append (b )
26
26
tm .assert_equal (result , obj )
27
27
28
28
def test_append_empty_list (self ):
29
29
# GH 28769
30
30
df = DataFrame ()
31
- with tm .assert_produces_warning (FutureWarning ):
32
- result = df .append ([])
31
+ result = df .append ([])
33
32
expected = df
34
33
tm .assert_frame_equal (result , expected )
35
34
assert result is not df
36
35
37
36
df = DataFrame (np .random .randn (5 , 4 ), columns = ["foo" , "bar" , "baz" , "qux" ])
38
- with tm .assert_produces_warning (FutureWarning ):
39
- result = df .append ([])
37
+ result = df .append ([])
40
38
expected = df
41
39
tm .assert_frame_equal (result , expected )
42
40
assert result is not df # .append() should return a new object
@@ -46,69 +44,57 @@ def test_append_series_dict(self):
46
44
47
45
series = df .loc [4 ]
48
46
msg = "Indexes have overlapping values"
49
- with pytest .raises (ValueError , match = msg ), tm .assert_produces_warning (
50
- FutureWarning
51
- ):
47
+ with pytest .raises (ValueError , match = msg ):
52
48
df .append (series , verify_integrity = True )
53
49
54
50
series .name = None
55
51
msg = "Can only append a Series if ignore_index=True"
56
- with pytest .raises (TypeError , match = msg ), tm .assert_produces_warning (
57
- FutureWarning
58
- ):
52
+ with pytest .raises (TypeError , match = msg ):
59
53
df .append (series , verify_integrity = True )
60
54
61
- with tm .assert_produces_warning (FutureWarning ):
62
- result = df .append (series [::- 1 ], ignore_index = True )
63
- expected = df .append (
64
- DataFrame ({0 : series [::- 1 ]}, index = df .columns ).T , ignore_index = True
65
- )
55
+ result = df .append (series [::- 1 ], ignore_index = True )
56
+ expected = df .append (
57
+ DataFrame ({0 : series [::- 1 ]}, index = df .columns ).T , ignore_index = True
58
+ )
66
59
tm .assert_frame_equal (result , expected )
67
60
68
61
# dict
69
- with tm .assert_produces_warning (FutureWarning ):
70
- result = df .append (series .to_dict (), ignore_index = True )
62
+ result = df .append (series .to_dict (), ignore_index = True )
71
63
tm .assert_frame_equal (result , expected )
72
64
73
- with tm .assert_produces_warning (FutureWarning ):
74
- result = df .append (series [::- 1 ][:3 ], ignore_index = True )
75
- expected = df .append (
76
- DataFrame ({0 : series [::- 1 ][:3 ]}).T , ignore_index = True , sort = True
77
- )
65
+ result = df .append (series [::- 1 ][:3 ], ignore_index = True )
66
+ expected = df .append (
67
+ DataFrame ({0 : series [::- 1 ][:3 ]}).T , ignore_index = True , sort = True
68
+ )
78
69
tm .assert_frame_equal (result , expected .loc [:, result .columns ])
79
70
80
71
msg = "Can only append a dict if ignore_index=True"
81
- with pytest .raises (TypeError , match = msg ), tm .assert_produces_warning (
82
- FutureWarning
83
- ):
72
+ with pytest .raises (TypeError , match = msg ):
84
73
df .append (series .to_dict ())
85
74
86
75
# can append when name set
87
76
row = df .loc [4 ]
88
77
row .name = 5
89
- with tm .assert_produces_warning (FutureWarning ):
90
- result = df .append (row )
91
- expected = df .append (df [- 1 :], ignore_index = True )
78
+ result = df .append (row )
79
+ expected = df .append (df [- 1 :], ignore_index = True )
92
80
tm .assert_frame_equal (result , expected )
93
81
94
82
def test_append_list_of_series_dicts (self ):
95
83
df = DataFrame (np .random .randn (5 , 4 ), columns = ["foo" , "bar" , "baz" , "qux" ])
96
84
97
85
dicts = [x .to_dict () for idx , x in df .iterrows ()]
98
86
99
- with tm .assert_produces_warning (FutureWarning ):
100
- result = df .append (dicts , ignore_index = True )
101
- expected = df .append (df , ignore_index = True )
87
+ result = df .append (dicts , ignore_index = True )
88
+ expected = df .append (df , ignore_index = True )
102
89
tm .assert_frame_equal (result , expected )
103
90
104
91
# different columns
105
92
dicts = [
106
93
{"foo" : 1 , "bar" : 2 , "baz" : 3 , "peekaboo" : 4 },
107
94
{"foo" : 5 , "bar" : 6 , "baz" : 7 , "peekaboo" : 8 },
108
95
]
109
- with tm .assert_produces_warning (FutureWarning ):
110
- result = df .append (dicts , ignore_index = True , sort = True )
111
- expected = df .append (DataFrame (dicts ), ignore_index = True , sort = True )
96
+ result = df .append (dicts , ignore_index = True , sort = True )
97
+ expected = df .append (DataFrame (dicts ), ignore_index = True , sort = True )
112
98
tm .assert_frame_equal (result , expected )
113
99
114
100
def test_append_list_retain_index_name (self ):
@@ -124,13 +110,11 @@ def test_append_list_retain_index_name(self):
124
110
)
125
111
126
112
# append series
127
- with tm .assert_produces_warning (FutureWarning ):
128
- result = df .append (serc )
113
+ result = df .append (serc )
129
114
tm .assert_frame_equal (result , expected )
130
115
131
116
# append list of series
132
- with tm .assert_produces_warning (FutureWarning ):
133
- result = df .append ([serc ])
117
+ result = df .append ([serc ])
134
118
tm .assert_frame_equal (result , expected )
135
119
136
120
def test_append_missing_cols (self ):
@@ -141,43 +125,38 @@ def test_append_missing_cols(self):
141
125
df = DataFrame (np .random .randn (5 , 4 ), columns = ["foo" , "bar" , "baz" , "qux" ])
142
126
143
127
dicts = [{"foo" : 9 }, {"bar" : 10 }]
144
- with tm .assert_produces_warning (FutureWarning ):
145
- result = df .append (dicts , ignore_index = True , sort = True )
128
+ result = df .append (dicts , ignore_index = True , sort = True )
146
129
147
- expected = df .append (DataFrame (dicts ), ignore_index = True , sort = True )
130
+ expected = df .append (DataFrame (dicts ), ignore_index = True , sort = True )
148
131
tm .assert_frame_equal (result , expected )
149
132
150
133
def test_append_empty_dataframe (self ):
151
134
152
135
# Empty df append empty df
153
136
df1 = DataFrame ()
154
137
df2 = DataFrame ()
155
- with tm .assert_produces_warning (FutureWarning ):
156
- result = df1 .append (df2 )
138
+ result = df1 .append (df2 )
157
139
expected = df1 .copy ()
158
140
tm .assert_frame_equal (result , expected )
159
141
160
142
# Non-empty df append empty df
161
143
df1 = DataFrame (np .random .randn (5 , 2 ))
162
144
df2 = DataFrame ()
163
- with tm .assert_produces_warning (FutureWarning ):
164
- result = df1 .append (df2 )
145
+ result = df1 .append (df2 )
165
146
expected = df1 .copy ()
166
147
tm .assert_frame_equal (result , expected )
167
148
168
149
# Empty df with columns append empty df
169
150
df1 = DataFrame (columns = ["bar" , "foo" ])
170
151
df2 = DataFrame ()
171
- with tm .assert_produces_warning (FutureWarning ):
172
- result = df1 .append (df2 )
152
+ result = df1 .append (df2 )
173
153
expected = df1 .copy ()
174
154
tm .assert_frame_equal (result , expected )
175
155
176
156
# Non-Empty df with columns append empty df
177
157
df1 = DataFrame (np .random .randn (5 , 2 ), columns = ["bar" , "foo" ])
178
158
df2 = DataFrame ()
179
- with tm .assert_produces_warning (FutureWarning ):
180
- result = df1 .append (df2 )
159
+ result = df1 .append (df2 )
181
160
expected = df1 .copy ()
182
161
tm .assert_frame_equal (result , expected )
183
162
@@ -189,22 +168,19 @@ def test_append_dtypes(self):
189
168
190
169
df1 = DataFrame ({"bar" : Timestamp ("20130101" )}, index = range (5 ))
191
170
df2 = DataFrame ()
192
- with tm .assert_produces_warning (FutureWarning ):
193
- result = df1 .append (df2 )
171
+ result = df1 .append (df2 )
194
172
expected = df1 .copy ()
195
173
tm .assert_frame_equal (result , expected )
196
174
197
175
df1 = DataFrame ({"bar" : Timestamp ("20130101" )}, index = range (1 ))
198
176
df2 = DataFrame ({"bar" : "foo" }, index = range (1 , 2 ))
199
- with tm .assert_produces_warning (FutureWarning ):
200
- result = df1 .append (df2 )
177
+ result = df1 .append (df2 )
201
178
expected = DataFrame ({"bar" : [Timestamp ("20130101" ), "foo" ]})
202
179
tm .assert_frame_equal (result , expected )
203
180
204
181
df1 = DataFrame ({"bar" : Timestamp ("20130101" )}, index = range (1 ))
205
182
df2 = DataFrame ({"bar" : np .nan }, index = range (1 , 2 ))
206
- with tm .assert_produces_warning (FutureWarning ):
207
- result = df1 .append (df2 )
183
+ result = df1 .append (df2 )
208
184
expected = DataFrame (
209
185
{"bar" : Series ([Timestamp ("20130101" ), np .nan ], dtype = "M8[ns]" )}
210
186
)
@@ -213,8 +189,7 @@ def test_append_dtypes(self):
213
189
214
190
df1 = DataFrame ({"bar" : Timestamp ("20130101" )}, index = range (1 ))
215
191
df2 = DataFrame ({"bar" : np .nan }, index = range (1 , 2 ), dtype = object )
216
- with tm .assert_produces_warning (FutureWarning ):
217
- result = df1 .append (df2 )
192
+ result = df1 .append (df2 )
218
193
expected = DataFrame (
219
194
{"bar" : Series ([Timestamp ("20130101" ), np .nan ], dtype = "M8[ns]" )}
220
195
)
@@ -223,8 +198,7 @@ def test_append_dtypes(self):
223
198
224
199
df1 = DataFrame ({"bar" : np .nan }, index = range (1 ))
225
200
df2 = DataFrame ({"bar" : Timestamp ("20130101" )}, index = range (1 , 2 ))
226
- with tm .assert_produces_warning (FutureWarning ):
227
- result = df1 .append (df2 )
201
+ result = df1 .append (df2 )
228
202
expected = DataFrame (
229
203
{"bar" : Series ([np .nan , Timestamp ("20130101" )], dtype = "M8[ns]" )}
230
204
)
@@ -233,8 +207,7 @@ def test_append_dtypes(self):
233
207
234
208
df1 = DataFrame ({"bar" : Timestamp ("20130101" )}, index = range (1 ))
235
209
df2 = DataFrame ({"bar" : 1 }, index = range (1 , 2 ), dtype = object )
236
- with tm .assert_produces_warning (FutureWarning ):
237
- result = df1 .append (df2 )
210
+ result = df1 .append (df2 )
238
211
expected = DataFrame ({"bar" : Series ([Timestamp ("20130101" ), 1 ])})
239
212
tm .assert_frame_equal (result , expected )
240
213
@@ -245,8 +218,7 @@ def test_append_timestamps_aware_or_naive(self, tz_naive_fixture, timestamp):
245
218
# GH 30238
246
219
tz = tz_naive_fixture
247
220
df = DataFrame ([Timestamp (timestamp , tz = tz )])
248
- with tm .assert_produces_warning (FutureWarning ):
249
- result = df .append (df .iloc [0 ]).iloc [- 1 ]
221
+ result = df .append (df .iloc [0 ]).iloc [- 1 ]
250
222
expected = Series (Timestamp (timestamp , tz = tz ), name = 0 )
251
223
tm .assert_series_equal (result , expected )
252
224
@@ -262,8 +234,7 @@ def test_append_timestamps_aware_or_naive(self, tz_naive_fixture, timestamp):
262
234
)
263
235
def test_other_dtypes (self , data , dtype ):
264
236
df = DataFrame (data , dtype = dtype )
265
- with tm .assert_produces_warning (FutureWarning ):
266
- result = df .append (df .iloc [0 ]).iloc [- 1 ]
237
+ result = df .append (df .iloc [0 ]).iloc [- 1 ]
267
238
expected = Series (data , name = 0 , dtype = dtype )
268
239
tm .assert_series_equal (result , expected )
269
240
@@ -278,8 +249,7 @@ def test_append_numpy_bug_1681(self, dtype):
278
249
df = DataFrame ()
279
250
other = DataFrame ({"A" : "foo" , "B" : index }, index = index )
280
251
281
- with tm .assert_produces_warning (FutureWarning ):
282
- result = df .append (other )
252
+ result = df .append (other )
283
253
assert (result ["B" ] == index ).all ()
284
254
285
255
@pytest .mark .filterwarnings ("ignore:The values in the array:RuntimeWarning" )
@@ -294,10 +264,15 @@ def test_multiindex_column_append_multiple(self):
294
264
df2 = df .copy ()
295
265
for i in range (1 , 10 ):
296
266
df [i , "colA" ] = 10
297
- with tm .assert_produces_warning (FutureWarning ):
298
- df = df .append (df2 , ignore_index = True )
267
+ df = df .append (df2 , ignore_index = True )
299
268
result = df ["multi" ]
300
269
expected = DataFrame (
301
270
{"col1" : [1 , 2 , 3 ] * (i + 1 ), "col2" : [11 , 12 , 13 ] * (i + 1 )}
302
271
)
303
272
tm .assert_frame_equal (result , expected )
273
+
274
+ def test_append_raises_future_warning (self ):
275
+ df1 = DataFrame ([[1 , 2 ], [3 , 4 ]])
276
+ df2 = DataFrame ([[5 , 6 ], [7 , 8 ]])
277
+ with tm .assert_produces_warning (FutureWarning ):
278
+ df1 .append (df2 )
0 commit comments