Skip to content

Commit 03d5325

Browse files
committed
BUG: GH3611 fix again, float na_values were not stringified correctly
now, 999.0 (a float) will have: ['999','999.0'] added for matching
1 parent 4d06037 commit 03d5325

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

pandas/io/parsers.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -1777,7 +1777,13 @@ def _stringify_na_values(na_values):
17771777
result.append(str(x))
17781778
result.append(x)
17791779
try:
1780-
result.append(float(x))
1780+
v = float(x)
1781+
1782+
# we are like 999 here
1783+
if v == int(v):
1784+
v = int(v)
1785+
result.append("%s.0" % v)
1786+
result.append(str(v))
17811787
except:
17821788
pass
17831789
try:

pandas/io/tests/test_parsers.py

+9
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,15 @@ def test_non_string_na_values(self):
540540
tm.assert_frame_equal(result1,result2)
541541
tm.assert_frame_equal(result2,result3)
542542

543+
result4 = read_csv(path, sep= ' ', header=0, na_values=['-999.0'])
544+
result5 = read_csv(path, sep= ' ', header=0, na_values=['-999'])
545+
result6 = read_csv(path, sep= ' ', header=0, na_values=[-999.0])
546+
result7 = read_csv(path, sep= ' ', header=0, na_values=[-999])
547+
tm.assert_frame_equal(result4,result3)
548+
tm.assert_frame_equal(result5,result3)
549+
tm.assert_frame_equal(result6,result3)
550+
tm.assert_frame_equal(result7,result3)
551+
543552
def test_custom_na_values(self):
544553
data = """A,B,C
545554
ignore,this,row

0 commit comments

Comments
 (0)