--- В классах Vectorizer *изменился метод для получения имён токенов* (скажем, для последующего использования в качестве названий столбцов датафрейма) -- теперь это .get_feature_names_out() --- В API произошло *изменение в номенклатуре и числе столбцов выдачи* ; само по себе оно, впрочем, не влияет на суть работы. Но оно приводит к дублированию столбцов в датафреймах с выдачей, что в совокупности со странностью индексирования по столбцам датафреймов с дублирующимися столбцами приводит к *ошибке* . Поэтому в начале обоих чанков # 6.4 следует добавить код: _comments_replies = comments_replies.groupby(level=0, axis=1).first()
Небольшой совет для тех, кто будет работать с большим количеством комментариев. В циклах лучше не использовать конкатенацию от pandas, потому что под капотом происходит копирование датафрейма => сложность такой программы будет O(n**2), т.е. будет оочень долго все работать. Лучшей практикой будет добавление df_additional в какой-то общий список, а потом конкатенация этого списка. В таком случае сложность будет O(n), т.к. добавление n датафреймов в список займет O(n), потому что добавление каждого отдельного элемента это O(1), и одна единственная конкатенация в конце также займет O(n).
--- В классах Vectorizer *изменился метод для получения имён токенов* (скажем, для последующего использования в качестве названий столбцов датафрейма) -- теперь это .get_feature_names_out()
--- В API произошло *изменение в номенклатуре и числе столбцов выдачи* ; само по себе оно, впрочем, не влияет на суть работы. Но оно приводит к дублированию столбцов в датафреймах с выдачей, что в совокупности со странностью индексирования по столбцам датафреймов с дублирующимися столбцами приводит к *ошибке* . Поэтому в начале обоих чанков # 6.4 следует добавить код: _comments_replies = comments_replies.groupby(level=0, axis=1).first()
Небольшой совет для тех, кто будет работать с большим количеством комментариев. В циклах лучше не использовать конкатенацию от pandas, потому что под капотом происходит копирование датафрейма => сложность такой программы будет O(n**2), т.е. будет оочень долго все работать. Лучшей практикой будет добавление df_additional в какой-то общий список, а потом конкатенация этого списка. В таком случае сложность будет O(n), т.к. добавление n датафреймов в список займет O(n), потому что добавление каждого отдельного элемента это O(1), и одна единственная конкатенация в конце также займет O(n).