Использование уникальности словарных ключей для кумуляции слов.
Я создаю дикт cumulative_words
, где хочу хранить уникальные слова построчно, обновляя его словарями, имеющими ключи, составленные из уникальных слов из заданного слова.предложение строки.
Код:
cumulative_words = {}
def cumulate(x):
cumulative_words.update(dict.fromkeys(set(x.lower().split())))
return list(cumulative_words.keys())
df["Column B"] = df["Column A"].apply(cumulate)
df["Column C"] = df["Column B"].apply(len)
Обновление:
Учитывая, что вы сказали, что этот код все еще имеет проблемы с памятью на ~ 200 тыс. Строк, яПопробую кое-что очень простое, чтобы понять немного больше:
- Просто обновите словарь совокупных значений
Создайте словарь с уникальными словами перед датафреймомоперации
cumulative_words = {}
for x in df["Column A"].values:
cumulative_words.update(dict.fromkeys(set(x.lower().split())))
Если это все еще сломается, я думаю, что мы должны изменить метод
Добавление слов в список Я думаю, что это критическая точка, потому что она создает список из примерно миллиардов слов
cumulative_words = {}
cumulative_column = []
for x in df["Column A"].values:
cumulative_words.update(dict.fromkeys(set(x.lower().split())))
cumulative_column.append(cumulative_words.keys())
Присвойте созданный список столбцу B и подсчитайте df["Column B"] = cumulative_column
df["Column C"] = df["Column B"].apply(len)
Возможно, слишком много слов для хранения, и не может быть создан фрейм данных, или я нене знаю, как это сделать.Дайте мне знать