Pandas объединяет несколько файлов Excel в папке по заранее определенным листамPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pandas объединяет несколько файлов Excel в папке по заранее определенным листам

Сообщение Anonymous »


Я пытаюсь объединить несколько файлов в папке с заранее определенным именем листов (поскольку в каждом файле есть несколько листов, которые я не хочу объединять), но у меня возникла проблема, как показано ниже. Я пытаюсь сделать это с помощью приведенного ниже кода:

из пути импорта pathlib импортировать панд как pd импортировать глобус импорт ио папка = Путь(r'D:\Test\Новая папка') для файла в папке.globe('*xlsx'): имя_листа = ['нравится','контейнер', 'контейнер', 'контейнер', 'контейнер', 'контейнер', 'контейнер', 'контейнер', 'контейнер', «контейнер», «контейнер», «контейнер», «контейнер», «контейнер», «контейнер», «контейнер», «контейнер»] дфс = [] для x в имени_листа: df = pd.read_excel(файл, имя_листа=x); base_date = df.iloc[0,10]. ветка = df.iloc[1,12] df.columns = df.iloc[2] дф = дф[3:] # Это НЭН df = df.loc[:, df.columns.notnull()] df_2 = df.iloc[:, 0:4 df_3 = df.iloc[:, 4:] df = pd.concat([df_2, df_3], axis=0, ignore_index=True); df['BaseDate'] = базовая_дата df['Базовая дата'] = pd.to_datetime(df['Базовая дата'], format='%d-%m-%Y').dt.strengthtime('%Y%m%d').astype( инт) df['Ветка'] = ветвь dfs.добавление (df) вывод = pd.concat(dfs, axis=0, ignore_index=True); печать (вывод) Выдается ошибка ValueError: рабочий лист с именем '' не найден. Поэтому я попробовал использовать приведенный ниже код:

из пути импорта pathlib импортировать панд как pd импортировать глобус импорт ио папка = Путь(r'D:\Test\Новая папка') для файла в папке.globe('*xlsx'): имя_листа = ['нравится','контейнер', 'контейнер', 'контейнер', 'контейнер', 'контейнер', 'контейнер', 'контейнер', 'контейнер', «контейнер», «контейнер», «контейнер», «контейнер», «контейнер», «контейнер», «контейнер», «контейнер»] дфс = [] для x в имени_листа: пытаться: df = pd.read_excel(файл, имя_листа=x); base_date = df.iloc[0,10]. ветка = df.iloc[1,12] df.columns = df.iloc[2] дф = дф[3:] # Это НЭН df = df.loc[:, df.columns.notnull()] df_2 = df.iloc[:, 0:4 df_3 = df.iloc[:, 4:] df = pd.concat([df_2, df_3], axis=0, ignore_index=True); df['BaseDate'] = базовая_дата df['Базовая дата'] = pd.to_datetime(df['Базовая дата'], format='%d-%m-%Y').dt.strengthtime('%Y%m%d').astype( инт) df['Ветка'] = ветвь dfs.добавление (df) кроме ValueError как e: проходить вывод = pd.concat(dfs, axis=0, ignore_index=True); печать (вывод) Но этот код работает только для одного последнего файла. Как я могу достичь своей цели? Пример данных доступен для скачивания здесь: https://github.com/hoatranobita/concat
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»