У меня много строк, некоторые из которых состоят из 1 предложения, а некоторые из нескольких предложений. Моя цель - определить, какие строки из одного предложения заканчиваются восклицательным знаком «!».
Мой код дает странный результат. Вместо того, чтобы возвращать «1», если он найден, он возвращает 1.0. Я попытался: return int(1)
, но это не помогает. Я довольно новичок в кодировании и не понимаю, почему это так и как я могу получить 1 как целое число?
'Sentences'
0 [This is a string., And a great one!]
1 [It's a wonderful sentence!]
2 [This is yet another string!]
3 [Strange strings have been written.]
4 etc. etc.
e = df['Sentences']
def Single(s):
if len(s) == 1: # Select the items with only one sentence
count = 0
for k in s: # loop over every sentence
if (k[-1]=='!'): # check if sentence ends with '!'
count = count+1
if count == 1:
return 1
else:
return ''
df['Single'] = e.apply(Single)
Возвращает правильный результат, за исключением того, что должно быть «1» вместо «1.0».
'Single'
0 NaN
1 1.0
2 1.0
3
4 etc. etc.
Почему это происходит?