@Tayrus0

Как заменить pandas.append на pandas.concat?

Сейчас у меня такой код

import io

from pandas import DataFrame

excel_writer = DataFrame()
excel_file = io.BytesIO()
excel_file.name = "table_excel.xlsx"
for history in ads:
    item_title = history.get("item_title")
    item_price = history.get("item_price")
    excel_writer = excel_writer.append(
        {
            "Имя": item_title,
            "Цена": item_price,
        },
        ignore_index=True,
    )
    excel_writer.to_excel(excel_file, encoding="utf-8", index=False)


Как мне его изменить чтобы работало с pandas.concat? Нужно изменить потому что получаю предупреждение 1 |
FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
  • Вопрос задан
  • 1512 просмотров
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Сначала собираете все датафреймы в отдельный лист, затем конкатенируете и все. По вашему коду должно быть как то так. Протестировать то код я не могу возможно где то опечатки. Собираете фреймы в лист в цикле, а затем за пределами цикла конкатенируете в общий фрейм и вне цикла записываете в файл.
import io
import pandas as pd


excel_file = io.BytesIO()
excel_file.name = "table_excel.xlsx"
all_frames = []
for history in ads:
    item_title = history.get("item_title")
    item_price = history.get("item_price")
    current_df = pd.DataFrame(
        {
            "Имя": [item_title],
            "Цена": [item_price],
        }
    )
    all_frames.append(currend_df)
final_df = pd.concat(all_frames, ignore_index=True)

final_df.to_excel(excel_file, encoding="utf-8", index=False)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы