【发布时间】:2019-01-30 15:32:04
【问题描述】:
我有几个格式相同但值不同的文件。 在 StackOverflow 用户的帮助下,我运行了代码,但现在我正在尝试优化它,我需要一些帮助才能做到这一点。
这是完整的代码:
import pandas as pd
# filenames
excel_names = ["file-JAN_2019.xlsx", "example-JAN_2019.xlsx", "stuff-JAN_2019.xlsx"]
# read them in
excels = [pd.ExcelFile(name) for name in excel_names]
# turn them into dataframes
frames = [x.parse(x.sheet_names[0], header=None,index_col=None) for x in
excels]
#frames = [df.iloc[20:, :] for df in frames]
frames_2 = [df.iloc[21:, :] for df in frames[1:]]
#And combine them separately
combined = pd.concat([frames[0], *frames_2])
# concatenate them..
#combined = pd.concat(frames)
combined = combined[~combined[4].isin(['-'])]
combined.dropna(subset=[4], inplace=True)
# write it out
combined.to_excel("c.xlsx", header=False, index=False)
我尝试使用的代码如下:
from glob import glob
excel_names = glob.glob('*JAN_2019-jan.xlsx')
files = []
for names in (excel_names):
files.extend(names)
print(files)
此时我收到以下错误: 回溯(最近一次通话最后): 文件“finaltwek.py”,第 4 行,在 excel_names = glob.glob('*JAN_2019-jan.xlsx') AttributeError: 'function' 对象没有属性 'glob'
但在我调整代码时,我也让代码运行,但它找到了文件夹中的所有文件,我只需要最后具有相同名称的文件,包括扩展名
我试图通过使其查找以相同方式结束并位于同一文件夹中的所有文件来使代码更具动态性,但由于某种原因,我无法使其工作,有人可以帮忙吗? 谢谢
【问题讨论】:
-
import glob而不是from glob import glob -
目前错误消失了,但它返回一个空列表,知道为什么@Maurice Meyer?
-
检查您的工作目录。 excel 文件在那个位置吗?
-
是的,我确信,当我运行未调整的代码时,它运行良好,但我需要查看文件,在代码中指定它们。在任何给定时间,我可以拥有 100 个文件,我需要找到一种方法来做到这一点,而无需输入所有文件的名称---