#python #regex #pandas #dataframe
#python #регулярное выражение #pandas #фрейм данных
Вопрос:
как мне отредактировать следующий скрипт, чтобы сохранить выходные данные как новые переменные в исходном фрейме данных?
ИНАЧЕ: вместо функции печати, должны ли выходные данные сохраняться как новая переменная для каждого оператора if elif?
import re
df = pd.read_excel('edmundstest.xlsx')
for Keyword, Landing_Page in zip(df["Keyword"], df["Landing_Page"]):
# the url
if "/2019/" in Landing_Page:
new_model_core_incentives = Landing_Page
print(f"new_model_core_incentives {new_model_core_incentives}")
elif re.search("/(?:(?:20)|(?:19))d{2}/", Landing_Page):
used_model_core_incentives = Landing_Page
print(f"used_model_core_incentives {used_model_core_incentives}")
# the "keywords"
if "2019" in Keyword:
new_word = Keyword
print(f"new_word {new_word}")
elif re.search("/(?:(?:20)|(?:19))d{2}/", Keyword) is None:
old_word = Keyword
print(f"old_word {old_word}")
т.е.: new_model_core_incentives
или used_model_core_incentives
как новую переменную в фрейме данных и new_word
и old_word
как новую переменную в фрейме данных?
Ответ №1:
Вы могли бы использовать словарь:
dict[Keyword]=f"new_model_core_incentives {new_model_core_incentives}"
dict2[Keyword]=f"old_word {old_word}"
Что-то вроде этого:
import re
df = pd.read_excel('edmundstest.xlsx')
dict, dict2 = {}, {}
for Keyword, Landing_Page in zip(df["Keyword"], df["Landing_Page"]):
# the url
if "/2019/" in Landing_Page:
new_model_core_incentives = Landing_Page
print(f"new_model_core_incentives {new_model_core_incentives}")
elif re.search("/(?:(?:20)|(?:19))d{2}/", Landing_Page):
used_model_core_incentives = Landing_Page
dict[Keyword]=f"new_model_core_incentives {new_model_core_incentives}"
# the "keywords"
if "2019" in Keyword:
new_word = Keyword
print(f"new_word {new_word}")
elif re.search("/(?:(?:20)|(?:19))d{2}/", Keyword) is None:
old_word = Keyword
dict2[Keyword]=f"old_word {old_word}"
Комментарии:
1. поместил бы я это туда, где находится инструкция print?
2. да. просто убедитесь, что предварительно определили dict
3. есть ли способ сделать это с исходным df?
4. Я не знаю структуру фрейма данных. Если это изменяемый объект, вы всегда можете просто добавить к нему