В понимании списка (последняя строка) вы проверяете каждое слово по стоп-слову, а если слово отсутствует в стоп-слове, вы возвращаете его. Но вы передаете ему строку. Вам нужно разделить строку для работы LC.
df = pd.DataFrame({'response':['This is one type of response!', 'Though i like this one more', 'and yet what is that?']})
df['response'] = df.response.str.replace("[^\w\s]", "").str.lower()
df['response'] = df['response'].apply(lambda x: [item for item in x.split() if item not in stop])
0 [one, type, response]
1 [though, like, one]
2 [yet]
Если вы хотите вернуть ответ в виде строки, измените последнюю строку на
df['response'] = df['response'].apply(lambda x: ' '.join([item for item in x.split() if item not in stop]))
0 one type response
1 though like one
2 yet