Запуск сценария Python несколько раз с разными входами - PullRequest
1 голос
/ 14 апреля 2020

Я новичок в программировании.

Мой скрипт выполняет следующие действия:

  1. Преобразует один лист Excel в один файл CSV

  2. Открывает этот CSV-файл, добавляет новый столбец с номером и сохраняет его

import pandas as pd

data_xls = pd.read_excel('excel_file.xlsx', ' tab_name ', index_col=None)
data_xls.to_csv('tab_name.csv', encoding='utf-8', index=False)
data_csv = pd.read_csv('tab_name.csv')
data_csv.insert(0, 'new_column_header', range(1, 1 + len(df)))
data_csv.to_csv('tab_name.csv', index=False )

Моя задача:

Документ Excel состоит из нескольких листов (вкладок). Давайте говорят: "tab1, tab2, tab3".

Мне нужно руководство, как запустить один и тот же скрипт в al oop на нескольких вкладках (то есть в списке).

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Вот что вам нужно:

dict_dfs = pd.read_excel("file.xlsx", sheet_name=None)

Это вернет вам OrderedDict, ключи которого будут именами листов, а значения будут фреймами данных.

Все, что вам нужно, это l oop снова и выполнить ваши манипуляции, а затем сохранить отдельные кадры данных как csv.

for k in dict_dfs:
    # your processing here
    dict_dfs[k].to_csv("custom_filename_for_each_dataframe.csv")

Надеюсь, это поможет.

0 голосов
/ 14 апреля 2020

Один из способов заключается в том, чтобы жестко закодировать имена ваших вкладок в списке и l oop над ними.

for tab in ["tab1", "tab2", "tab3"]:
    data_xls = pd.read_excel('excel_file.xlsx', tab, index_col=None)
    data_xls.to_csv(tab + '.csv', encoding='utf-8', index=False)
    data_csv = pd.read_csv(tab + '.csv')
    data_csv.insert(0, 'new_column_header', range(1, 1 + len(df)))
    data_csv.to_csv(tab + '.csv', index=False )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...