Python 追加多个 Excel 文件
Python append multiple Excel files
我正在尝试将具有相同列的多个 Excel 文件合并为一个文件。如果我使用此代码 x.append(y, ignore_index = True)
它不起作用。在 for 循环的末尾,它 returns 只有 x 的 table。但是,如果我尝试 运行 x.append(y, ignore_index = True)
在单个代码块中,它可以很好地附加 y ,它在 for 循环之后仍在内存中。我正在使用 Juptyer 笔记本。
# import required module
import os as os
import pandas as pd
# assign directory
# directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\TimeLogs'
directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\tmp'
# iterate over files in
# that directory
for idx,filename in enumerate(os.listdir(directory)):
f = os.path.join(directory, filename)
# checking if it is a file
if os.path.isfile(f):
print(f)
print(idx)
if idx == 0:
x = pd.read_excel(f,engine="openpyxl")
else:
y = pd.read_excel(f,engine="openpyxl")
x.append(y, ignore_index = True)
您可以创建数据帧列表,然后使用 pandas' concat
方法连接它们。
# import required module
import os as os
import pandas as pd
# assign directory
# directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\TimeLogs'
directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\tmp'
# iterate over files in
# that directory
list_of_dataframes=[]
for idx,filename in enumerate(os.listdir(directory)):
f = os.path.join(directory, filename)
# checking if it is a file
if os.path.isfile(f):
print(f)
list_of_dataframes.append(pd.read_excel(f,engine="openpyxl"))
merged_df=pd.concat(list_of_dataframes)
这样,您就不必检查索引 idx
是否等于 0。
我正在尝试将具有相同列的多个 Excel 文件合并为一个文件。如果我使用此代码 x.append(y, ignore_index = True)
它不起作用。在 for 循环的末尾,它 returns 只有 x 的 table。但是,如果我尝试 运行 x.append(y, ignore_index = True)
在单个代码块中,它可以很好地附加 y ,它在 for 循环之后仍在内存中。我正在使用 Juptyer 笔记本。
# import required module
import os as os
import pandas as pd
# assign directory
# directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\TimeLogs'
directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\tmp'
# iterate over files in
# that directory
for idx,filename in enumerate(os.listdir(directory)):
f = os.path.join(directory, filename)
# checking if it is a file
if os.path.isfile(f):
print(f)
print(idx)
if idx == 0:
x = pd.read_excel(f,engine="openpyxl")
else:
y = pd.read_excel(f,engine="openpyxl")
x.append(y, ignore_index = True)
您可以创建数据帧列表,然后使用 pandas' concat
方法连接它们。
# import required module
import os as os
import pandas as pd
# assign directory
# directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\TimeLogs'
directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\tmp'
# iterate over files in
# that directory
list_of_dataframes=[]
for idx,filename in enumerate(os.listdir(directory)):
f = os.path.join(directory, filename)
# checking if it is a file
if os.path.isfile(f):
print(f)
list_of_dataframes.append(pd.read_excel(f,engine="openpyxl"))
merged_df=pd.concat(list_of_dataframes)
这样,您就不必检查索引 idx
是否等于 0。