我在不同的目录中有两个文件夹,其中包含同名的 excel 文件。我需要连接 excel 文件,而不是工作表,因为每个文件都有一张同名的工作表。例如:
d1 包含 A、B、C 文件
d2包含A、B、E、F文件
输出应包含两个文件,将d1 中的 A 和 d2中的 A 连接的结果,以及d1 中的 B 和 d2中的 B连接的结果。
如果 d1 和 d2 没有同名文件,则不会有输出。
第一个数据框有多行,但第二个数据框有一行。当我运行此代码时,它会将第二个数据帧视为标头,当我将标头设置为 false 时,它不再考虑它。
import glob
import numpy as np
file_d1 = glob.glob(d1 + "/*.xlsx")
file_d2 = glob.glob(d2 + "/*.xlsx")
i=0
for file_d1 in glob.glob(d1 + "/*.xlsx"):
fileName_d1 = os.path.splitext(os.path.splitext(os.path.basename(file_d1))[0])[0]
for file_d2 in glob.glob(d2 + "/*.xlsx"):
fileName_d2 = os.path.splitext(os.path.splitext(os.path.basename(file_d2))[0])[0]
if fileName_d1 == fileName_d2:
i+=1
fileName_1=d1+'/'+fileName_d1+'.xlsx'
df1 = pd.read_excel(fileName_1, header=0, index= False)
fileName_2=d2+'/'+fileName_d2+'.xlsx'
df2 = pd.read_excel(fileName_2, header=0, index= False)
print(fileName_1)
print(fileName_2)
df = pd.DataFrame(np.concatenate([df1.values, df2.values], axis=0), columns=df2.columns)
df.to_excel('C:/Users/khouloud.ayari/Desktop/FinalResult/output'+str(i)+'.xlsx', index = True, header=False)
我应该怎么做才能获得正确的输出,即(第一个数据帧+第二个数据帧)而不是相反?
当我连接这两个文件时,“nbr de Reboot”消失了,“nbr de km parcourus”被认为是标题df.to_excel('C:/Users/khouloud.ayari/Desktop/FinalResult/output'+str(i)+'.xlsx', index = False, header=True)
通过控制台输出
1 nbr de Kilomètres parcourus 1
0 Passage en mode privé 1
1 Passage en mode public 2
输出.xlsx
PS:我正在使用 Python 3.7(Spyder)

