将许多优胜者循环到单独的数据帧中

时间:2019-04-13 22:48:52

标签: python-3.x loops dataframe

我是Python 3的新手,我需要帮助将4个excel spreedsheets循环为单独的df。我可以通过手动输入4个文件路径中的每个文件的pd.read_excel(filepath,index_col = 0)来做到这一点,但我一直在寻找一种健壮的方法来简单地循环我拥有的所有文件路径并为每个文件路径创建一个df(excel表格)。谁能帮我?谢谢


filepath = '/Users/User/Desktop/Tax\Year.xlsx'
filepath2 = '/Users/User/Desktop/Tax\Year2.xlsx'
filepath3 = '/Users/User/Desktop/Tax\Year3.xlsx'
filepath4 = '/Users/User/Desktop/Tax\Year4.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 个答案:

答案 0 :(得分:0)

我会在第一个文件路径上放置一个“ 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...

下面进一步讨论OP问题。使用os库中的walk命令可以从目录中加载文件名,然后在列表中遍历它们

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