#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(.....)