提问人:SOURA ELLE 提问时间:11/4/2023 最后编辑:SOURA ELLE 更新时间:11/5/2023 访问量:102
如何使用 Python 将不同的 Excel 文件合并为一个新的 Excel 文件
how to merge to different excel files into one new excel file using python
问:
问题是我不能将它们全部合并
首先,在第一阶段,我要求用户给出其 excel 文件的两个路径,即 ExceloathH 和 ExcelpathL。因此,必须将这些添加到新的 excle 文件中 然后在 period2 中,2 个 excel 路径应该添加到新的 excel 文件中(在新文件中,它是 4 个 excel 文件的容器) 我想将这些文件合并到一个名为 sys_excel 的新 Excel 文件中
new_excel_by_user=str(input("write the name of your new EXCEL file:"))
user_excel = pd.ExcelWriter(new_excel_by_user+'.xlsx', engine='xlsxwriter')
sys_excel=pd.ExcelWriter('sys_excel11.xlsx', engine='xlsxwriter')
excel_list_H= []
excel_list_L=[]
for i in range(v):
print("\npriod %d :"%(i+1))
excelpathH=''+input(''+r"Insert your Excel path(HIGH):")
excelpathL=''+input(''+r"Insert your Excel path(LOW):")
excelpathH=excelpathH.replace('"', '')
excelpathL=excelpathL.replace('"', '')
dfH=pd.read_excel(os.path.join(excelpathH), engine='openpyxl' )
dfL=pd.read_excel(os.path.join(excelpathL), engine='openpyxl' )
答:
0赞
Harsh Chitaliya
11/4/2023
#1
import os
import pandas as pd
data_file='filepath'
df=[]
for file in os.listdir(data_file):
if file.endswith('.csv'):
df.append(pd.read_csv(os.path.join(data_file,file)))
m_df=pd.concat(df,ignore_index=True)
m_df.to_excel("name.xlsx")
评论
1赞
SOURA ELLE
11/4/2023
我不希望它们被列出,我希望它们作为数据帧
0赞
Harsh Chitaliya
11/5/2023
它是 Elle @soura DataFrame
0赞
Tusher
11/4/2023
#2
您可以直接合并从 Excel 文件中读取的 DataFrame,而无需将它们存储在列表中。下面是代码的更新版本
import pandas as pd
import os
new_excel_by_user = str(input("Write the name of your new EXCEL file: "))
sys_excel = pd.ExcelWriter('sys_excel11.xlsx', engine='xlsxwriter')
merged_df_H = pd.DataFrame()
merged_df_L = pd.DataFrame()
for i in range(v):
print("\nPeriod %d :" % (i+1))
excelpathH = input("Insert your Excel path (HIGH): ")
excelpathL = input("Insert your Excel path (LOW): ")
excelpathH = excelpathH.replace('"', '')
excelpathL = excelpathL.replace('"', '')
dfH = pd.read_excel(os.path.join(excelpathH), engine='openpyxl')
dfL = pd.read_excel(os.path.join(excelpathL), engine='openpyxl')
merged_df_H = pd.concat([merged_df_H, dfH])
merged_df_L = pd.concat([merged_df_L, dfL])
# Write merged dataframes to a new Excel file
with pd.ExcelWriter(new_excel_by_user + '.xlsx', engine='xlsxwriter') as user_excel:
merged_df_H.to_excel(user_excel, sheet_name='High', index=False)
merged_df_L.to_excel(user_excel, sheet_name='Low', index=False)
# Optionally, if you want to merge the data into 'sys_excel11.xlsx'
merged_df_H.to_excel(sys_excel, sheet_name='High', index=False)
merged_df_L.to_excel(sys_excel, sheet_name='Low', index=False)
sys_excel.save()
在这里,我只是直接将 Excel 文件合并到 和 数据帧中,而不使用中间列表。merged_df_H
merged_df_L
评论
1赞
SOURA ELLE
11/4/2023
非常感谢,但有问题。它把所有 excel 文件都写在下面,我测量 excel2 位于 excel1 中的所有元素下
1赞
SOURA ELLE
11/4/2023
而且,我不想要多张纸,我希望它们都放在一张名为“Sheet1”的纸中,并且一个接一个地排列在列中
0赞
Tusher
11/4/2023
自己解决这个问题。如果没有,你将如何学习。
1赞
SOURA ELLE
11/4/2023
我尝试使用.transpose(),但它没有用
1赞
SOURA ELLE
11/4/2023
我修好了.....
评论