我尝试合并模拟中的数据运行效率更高。目前,根据运行集,数据在不同文件夹中的多个Excel文档中生成。
选择我传递此代码的文件:
def XLFiles():
root = Tkinter.Tk()
root.withdraw()
select_files = tkFileDialog.askopenfilenames(parent=root, initialdir='dir', title='Choose Rig Data Files')
return select_files
select_files = XLFiles()
file_list = list(select_files)
这将返回相关文档的所有目录的列表。
我的目标是下一步合并数据。这是我遇到问题的地方。
我已经使用过:
df2 = []
for f in list(select_files):
df1 = pd.read_excel(f, header=1, skiprows=range(2,50), usecols="H,I")
df2.append(df1)
我的问题是这不会返回数据框,而是返回3个列表。我假设是因为我做了' df2 = []'但是,我不知道如何在没有任何数据的情况下将df2创建为数据帧。请你能按正确的方向推动我吗?
谢谢
答案 0 :(得分:2)
试试这个:
df = pd.concat([pd.read_excel(f, header=1, skiprows=range(2,50), usecols="H,I")
for f in select_files], ignore_index=True)
答案 1 :(得分:2)
您需要concat
DataFrame
个列表,如果加入空DataFrame
则没有错误:
df2 = []
for f in list(select_files):
df1 = pd.read_excel(f, header=1, skiprows=range(2,50), usecols="H,I")
df2.append(df1)
df = pd.concat(df2, ignore_index=True)