附加在 for 循环中生成的 pandas 数据框
- 2025-01-22 08:45:00
- admin 原创
- 68
问题描述:
我正在 for 循环中访问一系列 Excel 文件。然后我将 excel 文件中的数据读取到 pandas 数据框中。我不知道如何将这些数据框附加在一起,然后将数据框(现在包含所有文件的数据)保存为新的 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")
谢谢!
解决方案 1:
用于pd.concat
将 DataFrame 列表合并为一个大数据框。
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')
解决方案 2:
你可以尝试一下。
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)
希望能够帮到你。
解决方案 3:
DataFrame.append()
和Series.append()
已被弃用,并将在未来版本中删除。请改用pandas.concat()
(GH35407)。
解决方案 4:
附加功能现已弃用。请改用 concat。这是我目前正在进行的项目的一个示例。我想用一个使用 concat 的示例来更新它。
import os
import pandas as pd
import glob
# reference sub floder in project folder
path = r'DataFiles'
# search for all excel files
filenames = glob.glob(path + "*.xlsx")
# print(filenames)
# initialize an empty dataframe
df_raw = pd.DataFrame()
#loop over list of excel files
for file in filenames:
# combining multiple excel worksheets
# into single data frames
df = pd.concat(pd.read_excel(file, sheet_name=None),
ignore_index=True, sort=False)
# print(df.shape)
data = [df_raw, df]
df_raw = pd.concat(data, ignore_index = True, sort=False)
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD