Python 附加在for循环中生成的数据帧

Python 附加在for循环中生成的数据帧,python,pandas,Python,Pandas,我正在for循环中访问一系列Excel文件。然后,我将excel文件中的数据读取到一个数据框中。我不知道如何将这些数据框附加在一起,然后将数据框(现在包含所有文件中的数据)保存为新的Excel文件 以下是我尝试过的: for infile in glob.glob("*.xlsx"): data = pandas.read_excel(infile) appended_data = pandas.DataFrame.append(data) # requires at least

我正在for循环中访问一系列Excel文件。然后,我将excel文件中的数据读取到一个数据框中。我不知道如何将这些数据框附加在一起,然后将数据框(现在包含所有文件中的数据)保存为新的Excel文件

以下是我尝试过的:

for infile in glob.glob("*.xlsx"):
    data = pandas.read_excel(infile)
    appended_data = pandas.DataFrame.append(data) # requires at least two arguments
appended_data.to_excel("appended.xlsx")
谢谢

用于将数据帧列表合并到单个大数据帧中

appended_data = []
for infile in glob.glob("*.xlsx"):
    data = pandas.read_excel(infile)
    # store DataFrame in list
    appended_data.append(data)
# see pd.concat documentation for more info
appended_data = pd.concat(appended_data)
# write DataFrame to an excel sheet 
appended_data.to_excel('appended.xlsx')
你可以试试这个

data_you_need=pd.DataFrame()
for infile in glob.glob("*.xlsx"):
    data = pandas.read_excel(infile)
    data_you_need=data_you_need.append(data,ignore_index=True)

希望能有所帮助。

太好了,谢谢。您知道是否有一种简单的方法可以将每个数据帧的标识符添加到最终的excel文件中吗?这样做的目的是能够跟踪数据来自哪个文件。在读取数据时,添加一个带有文件名的新列。可以是像
data['filename']=infle
这样简单的东西。太好了!非常感谢。如果将来有人想尝试这个方法,只需将
]
替换为非上标的:)@FaCoffee,从代码中删除
轴=1
,以将dfs相互绑定在一起。:)除非另有说明,我认为“append”是指行而不是列,建议从这个答案中删除axis=1,请参见Hi@Ilya-假设您在链接中引用了alexander的帖子-引用的性能较慢是因为使用了
DataFrame.append
操作而不是
list.append
操作-不是因为
DataFrame.append
操作而不是
DataFrame.concat
操作。我不确定如何操作python管理内存,但我希望append操作使用的内存量小于或等于内存量(因为无关信息是垃圾收集的),而concat操作可能使用append“在引擎盖下”——导致性能几乎没有改善(如果内存要求更高,性能可能会更差)。我尝试了此操作,但您需要的数据为空。不知道出了什么问题永远不要生成数据帧!改为附加到列表。请从