python-3.x - 将许多 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)
解决方案
我会在第一个文件路径上放一个“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
推荐阅读
- python - 如果在 python 中设置,os.getenv 不能作为函数参数的默认值
- yii2 - YII2 带有 AND 运算符的额外条件
- html - 重力表单 HTML 块错误
- perl - 如何解决错误:没有这样的文件或目录
- javascript - 使用自定义中间件进行异步操作。动作必须是普通对象
- c++ - 仅为特定应用程序启用 VPN 使用
- django - 无法向特定用户发送信号
- c# - 如何在 Asp.Net Mvc 中使用 Google Analytics API
- google-chrome - 如何为 Google Chrome 创建 ClickOnce 扩展程序
- python - 如何将 Pandas 字符串列转换为新的可为空的 Int64 类型?