使用for循环(Python)追加/连接多个excel数据集
Posted
技术标签:
【中文标题】使用for循环(Python)追加/连接多个excel数据集【英文标题】:Append/Concatenate multipe excel data sets using for loop (Python) 【发布时间】:2018-07-27 08:40:48 【问题描述】:我正在尝试更有效地合并来自模拟运行的数据。目前,数据在不同文件夹中的多个 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 创建为没有任何数据的数据框。请问你能把我推到正确的方向吗?
谢谢
【问题讨论】:
【参考方案1】:试试这个:
df = pd.concat([pd.read_excel(f, header=1, skiprows=range(2,50), usecols="H,I")
for f in select_files], ignore_index=True)
【讨论】:
MaxU 谢谢你这也有效。我不知道这里的礼仪,因为你是第一次我给你打勾? @OParker,不,您应该简单地接受最适合您需求的答案... ;-)【参考方案2】:你需要DataFrame
s列表中的concat
,如果加入空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)
【讨论】:
非常感谢这个作品。我可以在 8 分钟内接受它是正确的。非常感谢以上是关于使用for循环(Python)追加/连接多个excel数据集的主要内容,如果未能解决你的问题,请参考以下文章