@@ -190,6 +190,25 @@ def test_eval_object_dtype_binop(self):
190
190
expected = DataFrame ({"a1" : ["Y" , "N" ], "c" : [True , False ]})
191
191
tm .assert_frame_equal (res , expected )
192
192
193
+ def test_extension_array_eval (self , engine , parser , request ):
194
+ # GH#58748
195
+ if engine == "numexpr" :
196
+ mark = pytest .mark .xfail (
197
+ reason = "numexpr does not support extension array dtypes"
198
+ )
199
+ request .applymarker (mark )
200
+ df = DataFrame ({"a" : pd .array ([1 , 2 , 3 ]), "b" : pd .array ([4 , 5 , 6 ])})
201
+ result = df .eval ("a / b" , engine = engine , parser = parser )
202
+ expected = Series (pd .array ([0.25 , 0.40 , 0.50 ]))
203
+ tm .assert_series_equal (result , expected )
204
+
205
+ def test_complex_eval (self , engine , parser ):
206
+ # GH#21374
207
+ df = DataFrame ({"a" : [1 + 2j ], "b" : [1 + 1j ]})
208
+ result = df .eval ("a/b" , engine = engine , parser = parser )
209
+ expected = Series ([1.5 + 0.5j ])
210
+ tm .assert_series_equal (result , expected )
211
+
193
212
194
213
class TestDataFrameQueryWithMultiIndex :
195
214
def test_query_with_named_multiindex (self , parser , engine ):
0 commit comments