Проблема с отображением таблицы

использовал функцию для отображения результатов тематического моделирования в виде таблицы. Изначально функция работала корректно, а сейчас падает в ошибку, не могу понять в чем дело?

def format_topics_sentences(ldamodel=ldamodel, corpus=textCorpus, texts=docCollTexts):
    # Init output
    sent_topics_df = pd.DataFrame()
    # Get main topic in each document
    for i, row in enumerate(ldamodel[textCorpus]):
        row = sorted(row, key=lambda x: (x[1]), reverse=True)
        # Get the Dominant topic, Perc Contribution and Keywords for each document
        for j, (topic_num, prop_topic) in enumerate(row):
            if j == 0:  # => dominant topic
                wp = ldamodel.show_topic(topic_num)
                topic_keywords = ", ".join([word for word, prop in wp])
                sent_topics_df = sent_topics_df.append(pd.Series([int(topic_num), round(prop_topic,4), topic_keywords]), ignore_index=True)
            else:
                break
    sent_topics_df.columns = ['Dominant_Topic', 'Perc_Contribution', 'Topic_Keywords']
    # Add original text to the end of the output
    contents = pd.Series(texts)
    sent_topics_df = pd.concat([sent_topics_df, contents], axis=1)
    return(sent_topics_df)
df_topic_sents_keywords = format_topics_sentences(ldamodel=ldamodel, corpus=textCorpus, texts=docCollTexts)
# Format
df_dominant_topic = df_topic_sents_keywords.reset_index()
df_dominant_topic.columns = ['Document_No', 'Dominant_Topic', 'Topic_Perc_Contrib', 'Keywords', 'Text']
# Show
df_dominant_topic.head(10)

ошибка

AttributeError                            Traceback (most recent call last)
<ipython-input-46-1553ec6521b9> in <cell line: 20>()
     18     sent_topics_df = pd.concat([sent_topics_df, contents], axis=1)
     19     return(sent_topics_df)
---> 20 df_topic_sents_keywords = format_topics_sentences(ldamodel=ldamodel, corpus=textCorpus, texts=docCollTexts)
     21 # Format
     22 df_dominant_topic = df_topic_sents_keywords.reset_index()

1 frames
/usr/local/lib/python3.10/dist-packages/pandas/core/generic.py in __getattr__(self, name)
   6291         ):
   6292             return self[name]
-> 6293         return object.__getattribute__(self, name)
   6294 
   6295     @final

AttributeError: 'DataFrame' object has no attribute 'append'

при корректной работе функции таблица выглядела следующим образом таблица

если использовать первоначальную запись в dataframe то он пишет все в один столбец первоначальная запись

а если новую запись использовать, то просто выдает ошибку новая запись


Ответы (1 шт):

Автор решения: CrazyElf

Вероятнее всего Pandas обновился до версии 2.0, на английском СО есть ответ, что DataFrame.append больше нет и нужно использовать теперь pd.concat. Примерно так:

sent_topics_df = pd.concat([
    sent_topics_df, 
    pd.DataFrame(data=[[int(topic_num), round(prop_topic,4), topic_keywords]], columns=sent_topics_df.columns)
], ignore_index=True)
→ Ссылка