Согласен с комментариями к вопросу.Тем не менее, мы все начали откуда-то.Shokan, как уже упоминали другие, проблема производительности, с которой вы сталкиваетесь, возникает из-за петли append
и for
.Попробуйте это:
1.Создать pandas dataframe из текстового файла, только один столбец, одна строка на строку
df_rawtext = pd.read_csv('good_dmoz.txt', header = None, names = ['raw_data'], sep = '\n')
2.Проверьте наличие регулярных выражений в строке и фильтре:
PATTERN = r"(?<=\')(.*?)(?=\')"
df_rawtext = df_rawtext.loc[df_rawtext.iloc[:,0].str.contains(PATTERN)]
3.Извлечь шаблон
df_rawtext['URL'] = df_rawtext['raw_data'].str.extract(PATTERN, expand = False)
Комментарий
Я выполняю шаг 2 здесь, потому что шаг 3 выдаст ошибку для строк без совпадения.
ValueError: pattern contains no capture groups
Если кто-то знает лучший способ, не стесняйтесь вносить свой вклад.Я очень хочу учиться.