В опубликованный код можно внести два улучшения:
- Использовать dataframe apply вместо использования Python для или пока l oop для обработки каждого заголовка (т.е. очень медленно)
- Используйте регулярное выражение, а не перебирайте каждую букву алфавита, чтобы проверить наличие запятой, за которой следует буква (также медленно)
Код
import re
def clean_title(title):
" Expression to clean title "
# Remove comma when followed by a word letter
return re.sub(r',(\w)', lambda m: m.group(1), title)
# Clean titles
df['title'] = df['title'].apply(clean_title)
Тест
- Создание набора данных - Список названий Mov ie и год выпуска
- Содержит желаемые и нежелательные запятые в заголовке
Пример нежелательной запятой:
Пример желаемой запятой:
Создать набор данных
df = pd.DataFrame({'title':['Lock, Stock and Two Smoking Barrels', 'The S,even Samurai', 'B,onnie and C,lyde', 'Reser,voir Dogs', 'A,irplane!', 'Doct,or Zhiva,go', 'I, Tonya'],
'Year':['1998', '1954', '1967', '1992', '1980', '1965', '2017']})
print(df)
Набор данных перед очисткой
title Year
0 Lock, Stock and Two Smoking Barrels 1998
1 The S,even Samurai 1954
2 B,onnie and C,lyde 1967
3 Reser,voir Dogs 1992
4 A,irplane! 1980
5 Doct,or Zhiva,go 1965
6 I, Tonya 2017
Набор данных после очистки
title Year
0 Lock, Stock and Two Smoking Barrels 1998
1 The Seven Samurai 1954
2 Bonnie and Clyde 1967
3 Reservoir Dogs 1992
4 Airplane! 1980
5 Doctor Zhivago 1965
6 I, Tonya 2017