Skip to content

Commit 803356e

Browse files
author
Camilo Cota
committed
set nonnum regex in init method
1 parent 1472d80 commit 803356e

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

pandas/io/parsers.py

+12-13
Original file line numberDiff line numberDiff line change
@@ -1642,6 +1642,12 @@ def __init__(self, f, **kwds):
16421642
if len(self.decimal) != 1:
16431643
raise ValueError('Only length-1 decimal markers supported')
16441644

1645+
if self.thousands is None:
1646+
self.nonnum = re.compile('[^-^0-9^%s]+' % self.decimal)
1647+
else:
1648+
self.nonnum = re.compile('[^-^0-9^%s^%s]+' % (self.thousands,
1649+
self.decimal))
1650+
16451651
def _set_no_thousands_columns(self):
16461652
# Create a set of column ids that are not to be stripped of thousands
16471653
# operators.
@@ -2053,13 +2059,12 @@ def _check_empty(self, lines):
20532059
def _check_thousands(self, lines):
20542060
if self.thousands is None:
20552061
return lines
2056-
nonnum = re.compile('[^-^0-9^%s^%s]+' % (self.thousands, self.decimal))
2062+
20572063
return self._search_replace_num_columns(lines=lines,
20582064
search=self.thousands,
2059-
replace='',
2060-
nonnum=nonnum)
2065+
replace='')
20612066

2062-
def _search_replace_num_columns(self, lines, search, replace, nonnum):
2067+
def _search_replace_num_columns(self, lines, search, replace):
20632068
ret = []
20642069
for l in lines:
20652070
rl = []
@@ -2068,26 +2073,20 @@ def _search_replace_num_columns(self, lines, search, replace, nonnum):
20682073
search not in x or
20692074
(self._no_thousands_columns and
20702075
i in self._no_thousands_columns) or
2071-
nonnum.search(x.strip())):
2076+
self.nonnum.search(x.strip())):
20722077
rl.append(x)
20732078
else:
20742079
rl.append(x.replace(search, replace))
20752080
ret.append(rl)
20762081
return ret
20772082

20782083
def _check_decimal(self, lines):
2079-
if self.decimal == b'.':
2084+
if self.decimal == _parser_defaults['decimal']:
20802085
return lines
20812086

2082-
if self.thousands is None:
2083-
nonnum = re.compile('[^-^0-9^%s]+' % self.decimal)
2084-
else:
2085-
nonnum = re.compile('[^-^0-9^%s^%s]+' % (self.thousands,
2086-
self.decimal))
20872087
return self._search_replace_num_columns(lines=lines,
20882088
search=self.decimal,
2089-
replace='.',
2090-
nonnum=nonnum)
2089+
replace='.')
20912090

20922091
def _clear_buffer(self):
20932092
self.buf = []

0 commit comments

Comments
 (0)