Импорт нескольких файлов Excel в Python, объединение и применение имени файла к новому столбцу

#python #excel #pandas #dataframe #import

#python #excel #pandas #dataframe #импорт

Вопрос:

У меня есть цикл for, который импортирует все файлы Excel в каталоге и объединяет их вместе в одном фрейме данных. Однако я хочу создать новый столбец, где каждая строка принимает строку имени файла Excel.

Вот мой код импорта и слияния:

 path = os.getcwd()
files = os.listdir(path)

df = pd.DataFrame()
for f in files:
    data = pd.read_excel(f, 'Sheet1', header = None, names = ['col1','col2'])
    df = df.append(data)
  

Например, если первый файл Excel имеет имя «file1.xlsx «Я хочу, чтобы все строки из этого файла имели значение file1.xlsx в col3 (новый столбец). Если второй файл Excel имеет имя «file2.xlsx «Я хочу, чтобы все строки из этого файла имели значение file2.xlsx . Обратите внимание, что реального шаблона файлов Excel не существует, и я просто использую эти имена в качестве примера.

Большое спасибо

Ответ №1:

Создайте новый столбец в цикле:

 df = pd.DataFrame()
for f in files:
    data = pd.read_excel(f, 'Sheet1', header = None, names = ['col1','col2'])
    data['col3'] = f
    df = df.append(data)
  

Другое возможное решение с пониманием списка:

 dfs = [pd.read_excel(f, 'Sheet1', header = None, names = ['col1','col2']).assign(col3 = f)
        for f in files]

 df = pd.concat(dfs)