首页 > 解决方案 > 将许多 excel 循环到单独的数据帧中

问题描述

我对 Python 3 比较陌生,我需要帮助将 4 个 excel 电子表格作为单独的 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)

标签: python-3.xloopsdataframe

解决方案


我会在第一个文件路径上放一个“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 问题。使用 walk from os library 能够从目录加载文件名,然后在列表中遍历它们

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

推荐阅读