оптимизация кода пандас

Считываю ексель файл и затем задаю новый столбец с названием имени этого ексель файла, итого код занимает две строки, а можно ли как то объединить это в одну строку? Дело в том, что считывать буду порядка ста файлов и писать код в 200 строк на такую мелочь глупо, но ничего придумать не могу дельного...

DF = pd.read_excel(r"C:\Users\Admin\ЗООПАРК.xlsx", sheet_name='1 лист', skiprows=12)
DF["CFO"] = "ЗООПАРК.xlsx"

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

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

А все файлы в одном каталоге будут или нет? Если в одном, то совсем просто:

for name in ('ЗООПАРК', 'КОНСЕРВАТОРИЯ', 'ЛЕСОПИЛКА'):
    DF = pd.read_excel(fr"C:\Users\Admin\{name}.xlsx", sheet_name='1 лист', skiprows=12)
    DF["CFO"] = f"{name}.xlsx"

Используйте списки (или кортежи, как у меня сделано) и цикл for, чтобы не повторяться (принцип DRY).

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

можно сразу использовать метод assign:

import pandas as pd
filename = r"dataset\Книга1.xlsx"
df = pd.read_excel(filname, header=None).assign(CFO=filename.split("\\")[-1])

df:

   0          CFO
0  1  Книга1.xlsx
1  2  Книга1.xlsx
2  3  Книга1.xlsx
→ Ссылка