@@ -1938,6 +1938,9 @@ def df_main_dtypes():
1938
1938
1939
1939
class TestNLargestNSmallest (object ):
1940
1940
1941
+ dtype_error_msg_template = ("Column {column!r} has dtype {dtype}, cannot "
1942
+ "use method {method!r} with this dtype" )
1943
+
1941
1944
# ----------------------------------------------------------------------
1942
1945
# Top / bottom
1943
1946
@pytest .mark .parametrize (
@@ -1962,11 +1965,10 @@ class TestNLargestNSmallest(object):
1962
1965
def test_n (self , df_strings , method , n , order ):
1963
1966
# GH10393
1964
1967
df = df_strings
1965
- if order [ 0 ] == 'b' :
1968
+ if 'b' in order :
1966
1969
1967
- # Only expect error when 'b' is first in order, as 'a' and 'c' are
1968
- # unique
1969
- error_msg = "Cannot use method '%s' with dtype object" % method
1970
+ error_msg = self .dtype_error_msg_template .format (
1971
+ column = 'b' , method = method , dtype = 'object' )
1970
1972
with tm .assertRaisesRegexp (TypeError , error_msg ):
1971
1973
getattr (df , method )(n , order )
1972
1974
else :
@@ -1982,18 +1984,15 @@ def test_n(self, df_strings, method, n, order):
1982
1984
))
1983
1985
def test_n_error (self , df_main_dtypes , method , columns ):
1984
1986
df = df_main_dtypes
1985
- msg = "Cannot use method '%s' with dtype %s" % (
1986
- method , df [columns [1 ]].dtype
1987
- )
1988
- with tm .assertRaisesRegexp (TypeError , msg ):
1987
+ error_msg = self .dtype_error_msg_template .format (
1988
+ column = columns [1 ], method = method , dtype = df [columns [1 ]].dtype )
1989
+ with tm .assertRaisesRegexp (TypeError , error_msg ):
1989
1990
getattr (df , method )(2 , columns )
1990
1991
1991
1992
def test_n_all_dtypes (self , df_main_dtypes ):
1992
1993
df = df_main_dtypes
1993
1994
df .nsmallest (2 , list (set (df ) - {'category_string' , 'string' }))
1994
- df .nsmallest (2 , ['int' , 'string' ]) # int column is unique => OK
1995
1995
df .nlargest (2 , list (set (df ) - {'category_string' , 'string' }))
1996
- df .nlargest (2 , ['int' , 'string' ]) # int column is unique => OK
1997
1996
1998
1997
def test_n_identical_values (self ):
1999
1998
# GH15297
0 commit comments