Как подсчитать количество операций, выполняемых str.replace - PullRequest
0 голосов
/ 19 июня 2019

У меня есть датафрейм с комментариями к столбцам, я использую регулярные выражения для удаления цифр.Я просто хочу посчитать, сколько строк было изменено с этим шаблоном.т.е. чтобы подсчитать, сколько строк работает str.replace.

df['Comments']=df['Comments'].str.replace('\d+', '')

Вывод должен выглядеть как -

Operated on 10 rows

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

re.subn () метод возвращает количество выполненных замен и новую строку.

Пример: text.txt содержит следующие строки содержимого.

No coments in the line 245
you can make colmments in line 200 and 300
Creating a list of lists with regular expressions in python ...Oct 28, 2018
re.sub on lists - python 

Пример кода:

count = 0   
for line in open('text.txt'):
    if (re.subn(r'\d+',"", line)[1]) > 0:
        count+=1
print("operated on {} rows".format(count))

Для панд:

data['comments'] = pd.DataFrame(open('text.txt', "r"))
count = 0
for line in data['comments']:
    if (re.subn(r'\d+',"", line)[1]) > 0:
        count+=1

print("operated on {} rows".format(count))

Выход:

operated on 3 rows
0 голосов
/ 19 июня 2019

Посмотрите, поможет ли это

import re
op_regex = re.compile("\d+")
df['op_count'] = df['comment'].apply(lambda x :len(op_regex.findall(x)))
print(f"Operation on {len(df[df['op_count'] > 0])} rows")

Использование findall, которое возвращает список совпадающих строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...