Как я могу экспортировать результат цикла for в CAV или Excel с помощью pandas?

#python #pandas #dataframe #export-to-csv #export-to-excel

Вопрос:

У меня есть цикл for, который получает данные с веб-сайта и хотел бы экспортировать их в файл xlsx или csv. Обычно, когда я печатаю результат цикла, я могу получить весь список, но когда я экспортирую его в файл xlsx, я получаю только последний элемент. В чем проблема, вы можете помочь?

 for item1 in spec:
        spec2 = item1.find_all('th')
        expl2 = item1.find_all('td')
        spec2x = spec2[a].text
        expl2x = expl2[a].text
        yazim = spec2x   ': '   expl2x
        cumle = yazim
        patern = r"(Brand|Series|Model|Operating System|CPU|Screen|MemoryStorage|Graphics Card|Video Memory|Dimensions|Screen Size|Touchscreen|Display Type|Resolution|GPU|Video Memory|Graphic Type|SSD|Bluetooth|USB)"
        if re.search(patern, cumle):
            speclist = translator.translate(cumle, lang_tgt='tr')
            specl = speclist                         
            #print(specl) 
            import pandas as pd
            exp = [{ 'Prospec': specl,},] 
            df = pd.DataFrame(exp, columns = ['Prospec',])
            df.to_excel('output1.xlsx',)
 

Ответ №1:

Создайте пустой список и на каждой итерации цикла for добавляйте в него фрейм данных. В итоге вы получите список фреймов данных. После цикла используйте pd.concat() для создания нового фрейма данных путем объединения каждого элемента вашего списка. Затем вы можете сохранить полученный df в файл Excel.

Ваш код будет выглядеть примерно так:

 import pandas as pd
df_list = []

for item1 in spec:
    ......
    if re.search(patern, cumle):
        .... 
        df_list.append(pd.DataFrame(.....))

df = pd.concat(df_list)
df.to_excel(.....)