Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Python by (11.4k points)

I have read multiple posts regarding this error, but I still can't figure it out. When I try to loop through my function:

def fix_Plan(location):
    letters_only = re.sub("[^a-zA-Z]",  # Search for all non-letters
                          " ",          # Replace all non-letters with spaces
                          location)     # Column and row to search   

    words = letters_only.lower().split()    
    stops = set(stopwords.words("english"))     
    meaningful_words = [w for w in words if not w in stops]     
    return (" ".join(meaningful_words))   

col_Plan = fix_Plan(train["Plan"][0])   
num_responses = train["Plan"].size   
clean_Plan_responses = []

for i in range(0,num_responses):
    clean_Plan_responses.append(fix_Plan(train["Plan"][i]))


Here is the error:

Traceback (most recent call last):
  File "C:/Users/xxxxx/PycharmProjects/tronc/tronc2.py", line 48, in <module>
    clean_Plan_responses.append(fix_Plan(train["Plan"][i]))
  File "C:/Users/xxxxx/PycharmProjects/tronc/tronc2.py", line 22, in fix_Plan
    location)  # Column and row to search
  File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python36\lib\re.py", line 191, in sub
    return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or bytes-like object

1 Answer

0 votes
by (32.3k points)

In your case, some of the values appeared to be floats, not strings. So, in order to get rid of this error do one thing just change those values into strings before passing them to re.sub. One simple way is to change location to str(location) when using re.sub. It wouldn't hurt to do it anyway even if it's already a str.

letters_only = re.sub("[^a-zA-Z]",  # Search for all non-letters

                          " ",          # Replace all non-letters with spaces

                          str(location))

If you want to learn python, visit this Python tutorial and Python course.

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
asked Oct 3, 2019 in Python by Sammy (47.6k points)
0 votes
1 answer

Browse Categories

...