Создание столбцов в Excel таблице

введите сюда описание изображения

Парсю информацию с сайта. Спарсил, допустим, 5 названий. Нужно создать 5 столбцов в Excel и записать название в каждый из столбцов.

Как это реализловать?

Допустим, 5 городов:

lst = ['Москва', 'Питер', 'Уфа', 'Смоленск', 'Омск']

И 5 столбцов: город 1, город 2 и т.д., таблица будет выглядеть так:

введите сюда описание изображения


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

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

Пример:

import pandas as pd   # pip install pandas

data = {
  "город 1": ["Москва", "100"],
  "город 2": ["Питер", "110"],
  "город 3": ["Уфа", "120"],
  "город 4": ["Смоленск", "130"],
  "город 5": ["Омск", "140"],
}

df = pd.DataFrame(data)

df.to_excel(r"c:\temp\result.xlsx", index=False)

NOTE: в SO вопросах, связанных с обработкой данных, ключевую роль играют примеры входных и выходных данных и структуры, в которых эти данные хранятся!

Посудите сами - если задающий вопрос не указывает как именно он(а) хранит данные то и дать рабочий и проверенный ответ на это практически невозможно. Ведь данные могут быть в виде необработанного текста, Excel / PDF / Word / JSON / etc. файла, в виде списка кортежей/списков, в виде словаря со списками, в виде списка словарей и т.д. Вариаций может быть очень много. Невозможно дать универсальный и проверенный ответ. На неточный и "размытый" вопрос можно получить только неточный и "размытый" ответ.

→ Ссылка
Автор решения: MaxU

Пример для данных из одной строки:

lst = ['Москва', 'Питер', 'Уфа', 'Смоленск', 'Омск']

df = pd.DataFrame([lst], columns=[f"город {i+1}" for i in range(len(lst))])

df.to_excel(r"c:\temp\result.xlsx", index=False)

Пример для данных, состоящих из двух и более строк, данные задаются в виде списка кортежей/списков, где каждый элемент списка задает одну строку фрейма:

data = [
  ('Москва', 'Питер', 'Уфа', 'Смоленск', 'Омск'),
  (10, 11, 9, 8, 20)
]

df = pd.DataFrame(data, columns=[f"город {i+1}" for i in range(len(lst))])

результат:

In [56]: df
Out[56]:
  город 1 город 2 город 3   город 4 город 5
0  Москва   Питер     Уфа  Смоленск    Омск
1      10      11       9         8      20
→ Ссылка