python - 根据文件名将目录中的多个 .xlsx 文件读入单独的 Pandas 数据框中

标签 python excel python-2.7 pandas glob

我想从一个目录加载多个具有不同结构的 xlsx 文件,并根据文件名为它们分配自己的数据框。我有 30 多个结构不同的文件,但为简洁起见,请考虑以下内容:

3 个 excel 文件 [wild_animals.xlsx, farm_animals_xlsx, domestic_animals.xlsx]

我想为每个分配自己的数据框,因此如果文件名包含“wild”,则将其分配给 wild_df,如果是 farm,则 farm_df,如果是 domestic,则dom_df。这只是流程的第一步,因为实际文件包含很多“噪音”,需要根据文件类型等进行清理,文件名也会每周更改一次,只有少数关键标记保持不变。

我的假设是 glob 模块是开始执行此操作的最佳方式,但就获取文件扩展名的非常特定部分并使用它分配给特定 df 而言,我变得有点迷茫,因此感谢任何帮助。

我刚才问了一个类似的问题,但它是一个更广泛问题的一部分,我现在已经解决了其中的大部分问题。

最佳答案

我会将它们解析成 DataFrame 的字典:

import os
import glob
import pandas as pd

files = glob.glob('/path/to/*.xlsx')
dfs = {}

for f in files:
    dfs[os.path.splitext(os.path.basename(f))[0]] = pd.read_excel(f)

然后您可以将它们作为普通字典元素访问:

dfs['wild_animals']
dfs['domestic_animals']

等等

关于python - 根据文件名将目录中的多个 .xlsx 文件读入单独的 Pandas 数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41347087/

相关文章:

c# - 如何使用 IDispatch 从非托管 C++ 调用 C# dll?

python - 无需退出 Python 脚本即可完全清除 Mac OS X 上的终端

python - 有没有一种简单的方法来检查一个对象在 python 中是否是 JSON 可序列化的?

excel - VBA:完成矩阵

vba - 将 +2 添加到任何数字 (VBA)

javascript - 从二进制数据在 html5 canvas 中显示图像

python - 线程中如何处理全局对象?

python - 输入提示和@singledispatch : how do I include `Union[...]` in an extensible way?

python - 给定 3d 点绘制 3d 表面的最简单方法

Python 将 *args 转换为列表