#python #regex
#python #регулярное выражение
Вопрос:
У меня есть супер-повторяющаяся строка Lux
, которая существует в нескольких переменных и именах, таких как: Luxcomments1718 (df)
, Luxsub1718 (df)
, Lux_Num_Comments (df.column)
и Luxsub1718.csv (filename)
. Как мне заменить все слово Lux
другим словом, таким как Tux
, не редактируя их одно за другим?
Luxcomments1718 = df.loc[df.Family_Type == 'Lux']
Luxcomments1718 = Luxcomments1718[Luxcomments1718.Comments.str.contains('|'.join(selection))]
print(len(Luxcomments1718))
df2 = Luxcomments1718.Comments.str.split(expand=True).stack()
df2 = df2[df2.isin(selection)].value_counts()
Luxsub1718 = pd.DataFrame(df2)
Luxsub1718['Lux_Num_Comments']=Luxsub1718[0]
del Luxsub1718[0]
Luxsub1718.to_csv('Luxsub1718.csv')
Комментарии:
1. пожалуйста, предоставьте пример ввода и вывода, которые минимально воспроизводят вашу проблему и то, каким вы ожидаете решения.
2. вы можете легко сделать это в интерпретаторе, выбрав одно слово, вы выберете все то же самое.
3. @Cyber-Tech как сделать это только для выбранных ячеек? Команда Ctrl H влияет на все слова во всем файле .ipynb / .py.
Ответ №1:
- Любой современный текстовый редактор имеет возможности глобального изменения. В
vi
это:%s/Lux/Tux/g
; в большинстве редакторов MS это команда CTRL-h. - Используйте внешнюю программу для внесения изменений. В семействе UNIX
sed
это фильтр командной строки, который использует те жеex
макросы, что иvi
. - Напишите простую программу на Python для
replace('Lux', 'Tux')
всего входного файла.
Комментарии:
1. Я использую Google Collab. Команда Ctrl H позволяет найти и заменить весь файл. Как мне сделать это только для выбранных ячеек?
2. Вам нужно указать, как выбираются ячейки; это не является частью вашего первоначального вопроса. Независимо от этого, CTRL-f / CTRL-h позволяет вам «изменить и найти следующий», начиная с текущего местоположения курсора. Просто поместите курсор в верхнюю часть вашей ячейки, перейдите в поле изменить / заменить и используйте кнопку Изменить / найти, чтобы быстро просмотреть ячейку.
Ответ №2:
Одним из способов сделать это может быть добавление в ваш файл:
with open("yourfile.py", "r") as start:
with open("targetfile.py", "w") as end:
for line in start:
end.write(line.replace('Lux', 'Tux'))
Обратите внимание, что при этом создается другой файл. Я не думаю, что есть способ изменить сам файл, кроме как сделать это из IDE.