У меня есть фрейм данных (назовем его «маленький текст»), в котором есть столбец с предложениями в каждой строке. У меня также есть еще одна таблица (назовем ее «littledict»), которую я хотел бы использовать в качестве справочника для поиска и замены слов и / или фраз в каждой строке «маленького текста».
Вот мои два фрейма данных. Я жестко кодирую их в этом примере, но загружу их как файлы csv в «реальной жизни»:
raw_text = {
"text": ["Hello, world!", "Hello, how are you?", "This world is funny!"],
"col2": [0,1,1]}
littletext = pd.DataFrame(raw_text, index = pd.Index(['A', 'B', 'C'], name='letter'), columns = pd.Index(['text', 'col2'], name='attributes'))
raw_dict = {
"key": ["Hello", "This", "funny"],
"replacewith": ["Hi", "That", "hilarious"]}
littledict = pd.DataFrame(raw_dict, index = pd.Index(['a','b','c'], name='letter'), columns = pd.Index(['key', 'replacewith'], name='attributes'))
print(littletext) # ignore 'col2' since it is irrelevant in this discussion
text col2
A Hello, world! 0
B Hello, how are you? 1
C This world is funny! 1
print(littledict)
key replacewith
a Hello Hi
b This That
c funny hilarious
Я хотел бы изменить 'littletext', как показано ниже, при этом Python будет смотреть на более одного слова в каждом предложении моей таблицы «маленький текст» (фрейм данных) и заменить несколько слов, воздействуя на все строки. Окончательный результат должен заключаться в том, что «Hello» было заменено на «Hi» в строках A и B, а «That» было заменено на «This», а «funny» было заменено на «hilarious», оба в строке C:
text col2
A Hi, world! 0
B Hi, how are you? 1
C That world is hilarious! 1
Вот две попытки, которые я пробовал, но ни одна из них не сработала. Они не генерируют ошибок, они просто не изменяют «маленький текст», как я описал выше. Попытка №1 «технически» работает, но она неэффективна и, следовательно, бесполезна для крупномасштабных работ, потому что мне придется предвидеть и программировать каждое возможное предложение, которое мне нужно будет заменить другим предложением. Попытка №2 просто ничего не меняет.
Две мои НЕработающие попытки:
Попытка №1: это бесполезно, потому что для ее использования мне пришлось бы программировать целые предложения для замены других предложений, что бессмысленно:
littltext['text'].replace({'Hello, world!': 'Hi there, world.', 'This world is funny!': 'That world is hilarious'})
Попытка № 1 возвращает:
Out[125]:
0 Hi there, world.
1 Hello, how are you?
2 That world is hilarious
Name: text, dtype: object
Попытка № 2: эта попытка ближе к отметке, но не возвращает никаких изменений :
for key in littledict:
littletext = littletext.replace(key,littledict[key])
Попытка №2 возвращает:
text col2
0 Hello, world! 0
1 Hello, how are you? 1
2 This world is funny! 1
Я просмотрел inte rnet, включая Youtube, Udemy и др. c., Но безрезультатно. Многочисленные «обучающие» сайты охватывают только отдельные примеры текста, а не целые столбцы предложений, как в примере, который я показываю, и поэтому бесполезны при масштабировании до проектов промышленного масштаба. Я надеюсь, что кто-то сможет любезно пролить свет на это, поскольку подобные манипуляции с текстом являются обычным явлением во многих отраслях промышленности.
Мои скромные благодарности и признательность всем, кто может помочь !!