我想从一个目录加载多个具有不同结构的 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/