оптимизация кода пандас
Считываю ексель файл и затем задаю новый столбец с названием имени этого ексель файла, итого код занимает две строки, а можно ли как то объединить это в одну строку? Дело в том, что считывать буду порядка ста файлов и писать код в 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