зацикливание многих выделений в отдельные фреймы данных

#python-3.x #loops #dataframe

#python-3.x #циклы #фрейм данных

Вопрос:

Я относительно новичок в Python 3, и мне нужна помощь в циклировании в 4 таблицах Excel в виде отдельных df. я могу сделать это, вручную введя pd.read_excel(filepath, index_col=0) для каждого из 4 путей к файлам, но я искал надежный способ просто зациклить все мои пути к файлам, которые у меня есть, и создать df для каждого пути к файлу (расширенная таблица Excel). кто-нибудь может мне помочь? Спасибо

 
filepath = '/Users/User/Desktop/TaxYear.xlsx'
filepath2 = '/Users/User/Desktop/TaxYear2.xlsx'
filepath3 = '/Users/User/Desktop/TaxYear3.xlsx'
filepath4 = '/Users/User/Desktop/TaxYear4.xlsx'  

df = pd.read_excel(filepath, index_col=0)
df2 = pd.read_excel(filepath2, index_col=0)
df3 = pd.read_excel(filepath3, index_col=0)
df4 = pd.read_excel(filepath4, index_col=0)

 

Ответ №1:

Я бы поставил ‘1’ на первый путь к файлу.

 dict_of_dfs = {}
for n in range(1,5):
    filepath = '/Users/User/Desktop/Tax/Year'   str(n)   '.xlsx'
    df = pd.read_excel(filepath, index_col=0)
    dict_of_dfs[n] = df

# retrieve your dfs...
df1 = dict_of_dfs[1]
df2 = dict_of_dfs[2]
# etc...
 

Далее к вопросу OPs ниже. Используйте переход из библиотеки ОС, чтобы иметь возможность загружать имена файлов из каталога, а затем просматривать их в списке

 from os import walk
directory = '/Users/User/Desktop/Tax/Year'

f = []
for (dirpath, dirnames, filenames) in walk(directory):
    f.extend(filenames)
    break
 

Затем вы можете получить доступ к своим именам файлов через цикл for:

 for n in f: 
    filepath = '/Users/User/Desktop/Tax/Year'   n
    df = pd.read_excel(filepath, index_col=0)
    dict_of_dfs[n] = df
 

Комментарии:

1. что делать, если пути к файлам совершенно разные. я хотел бы использовать код для других путей к файлам, которые имеют разные имена папок и т.д. есть ли какой-нибудь способ?