@@ -1716,7 +1716,10 @@ def _clean_options(
1716
1716
1717
1717
# Converting values to NA
1718
1718
keep_default_na = options ["keep_default_na" ]
1719
- na_values , na_fvalues = _clean_na_values (na_values , keep_default_na )
1719
+ floatify = engine != "pyarrow"
1720
+ na_values , na_fvalues = _clean_na_values (
1721
+ na_values , keep_default_na , floatify = floatify
1722
+ )
1720
1723
1721
1724
# handle skiprows; this is internally handled by the
1722
1725
# c-engine, so only need for python and pyarrow parsers
@@ -1928,7 +1931,7 @@ def TextParser(*args, **kwds) -> TextFileReader:
1928
1931
return TextFileReader (* args , ** kwds )
1929
1932
1930
1933
1931
- def _clean_na_values (na_values , keep_default_na : bool = True ):
1934
+ def _clean_na_values (na_values , keep_default_na : bool = True , floatify : bool = True ):
1932
1935
na_fvalues : set | dict
1933
1936
if na_values is None :
1934
1937
if keep_default_na :
@@ -1956,7 +1959,7 @@ def _clean_na_values(na_values, keep_default_na: bool = True):
1956
1959
else :
1957
1960
if not is_list_like (na_values ):
1958
1961
na_values = [na_values ]
1959
- na_values = _stringify_na_values (na_values )
1962
+ na_values = _stringify_na_values (na_values , floatify )
1960
1963
if keep_default_na :
1961
1964
na_values = na_values | STR_NA_VALUES
1962
1965
@@ -1978,7 +1981,7 @@ def _floatify_na_values(na_values):
1978
1981
return result
1979
1982
1980
1983
1981
- def _stringify_na_values (na_values ):
1984
+ def _stringify_na_values (na_values , floatify : bool ):
1982
1985
"""return a stringified and numeric for these values"""
1983
1986
result : list [str | float ] = []
1984
1987
for x in na_values :
@@ -1993,13 +1996,15 @@ def _stringify_na_values(na_values):
1993
1996
result .append (f"{ v } .0" )
1994
1997
result .append (str (v ))
1995
1998
1996
- result .append (v )
1997
- except (TypeError , ValueError , OverflowError ):
1998
- pass
1999
- try :
2000
- result .append (int (x ))
1999
+ if floatify :
2000
+ result .append (v )
2001
2001
except (TypeError , ValueError , OverflowError ):
2002
2002
pass
2003
+ if floatify :
2004
+ try :
2005
+ result .append (int (x ))
2006
+ except (TypeError , ValueError , OverflowError ):
2007
+ pass
2003
2008
return set (result )
2004
2009
2005
2010
0 commit comments