У меня есть кадр данных для панд, который выглядит следующим образом:
cleanText.head()
source word count
0 twain_ess 988
1 twain_ess works 139
2 twain_ess short 139
3 twain_ess complete 139
4 twain_ess would 98
5 twain_ess push 94
И словарь, содержащий общее количество слов для каждого источника:
titles
{'orw_ess': 1729, 'orw_novel': 15534, 'twain_ess': 7680, 'twain_novel': 60004}
Моя цель - нормализовать количество слов для каждого источника по общему количеству слов в этом источнике, то есть превратить их в процент. Похоже, это должно быть тривиально, но Python, кажется, делает это очень сложно (если бы кто-нибудь мог объяснить мне правила для операций на месте, это было бы здорово).
Предостережение возникает из-за необходимости фильтровать записи в cleanText
только для записей из одного источника, а затем я пытаюсь на месте разделить счетчики для этого подмножества на значение в словаре.
# Adjust total word counts and normalize
for key, value in titles.items():
# This corrects the total words for overcounting the '' entries
overcounted= cleanText[cleanText.iloc[:,0]== key].iloc[0,2]
titles[key]= titles[key]-overcounted
# This is where I divide by total words, however it does not save inplace, or at all for that matter
cleanText[cleanText.iloc[:,0]== key].iloc[:,2]= cleanText[cleanText.iloc[:,0]== key]['count']/titles[key]
Если бы кто-нибудь мог объяснить, как изменить этот оператор деления так, чтобы вывод фактически сохранялся в исходном столбце, это было бы здорово.
Спасибо