|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
各位大佬好,请问如何用merge合并多个execl文件。
我只会用笨方法,感觉比较麻烦,能否有简单的方法,请赐教。
import pandas as pd
import numpy as np
import shutil
import os
from os import path
import xlwt
import openpyxl
df1 = pd.read_excel('E://计算数据//数据2月份.xlsx', index_col=0)
df2 = pd.read_csv('E://计算数据//201.csv', index_col=0,encoding='gb2312')
df = pd.merge(df1, df2, on='产品名称', how='left')
df.to_excel('E://计算数据//数据2月份.xlsx')
df1 = pd.read_excel('E://计算数据//数据2月份.xlsx', index_col=0)
df2 = pd.read_csv('E://计算数据//202.csv', index_col=0,encoding='gb2312')
df = pd.merge(df1, df2, on='产品名称', how='left')
df.to_excel('E://计算数据//数据2月份.xlsx')
df1 = pd.read_excel('E://计算数据//数据2月份.xlsx', index_col=0)
df2 = pd.read_csv('E://计算数据//203.csv', index_col=0,encoding='gb2312')
df = pd.merge(df1, df2, on='产品名称', how='left')
df.to_excel('E://计算数据//数据2月份.xlsx')
df1 = pd.read_excel('E://计算数据//数据2月份.xlsx', index_col=0)
df2 = pd.read_csv('E://计算数据//204.csv', index_col=0,encoding='gb2312')
df = pd.merge(df1, df2, on='产品名称', how='left')
df.to_excel('E://计算数据//数据2月份.xlsx')
df1 = pd.read_excel('E://计算数据//数据2月份.xlsx', index_col=0)
df2 = pd.read_csv('E://计算数据//205.csv', index_col=0,encoding='gb2312')
df = pd.merge(df1, df2, on='产品名称', how='left')
df.to_excel('E://计算数据//数据2月份.xlsx')
df1 = pd.read_excel('E://计算数据//数据2月份.xlsx', index_col=0)
df2 = pd.read_csv('E://计算数据//206.csv', index_col=0,encoding='gb2312')
df = pd.merge(df1, df2, on='产品名称', how='left')
df.to_excel('E://计算数据//数据2月份.xlsx')
df1 = pd.read_excel('E://计算数据//数据2月份.xlsx', index_col=0)
df2 = pd.read_csv('E://计算数据//207.csv', index_col=0,encoding='gb2312')
df = pd.merge(df1, df2, on='产品名称', how='left')
df.to_excel('E://计算数据//数据2月份.xlsx')
df1 = pd.read_excel('E://计算数据//数据2月份.xlsx', index_col=0)
df2 = pd.read_csv('E://计算数据//208.csv', index_col=0,encoding='gb2312')
df = pd.merge(df1, df2, on='产品名称', how='left')
df.to_excel('E://计算数据//数据2月份.xlsx')
一直到月底,运行起来时间长,请赐教简单的方法,感谢。
可以使用循环和列表来简化你的代码。具体来说,你可以创建一个文件名列表,然后使用循环一次处理每个文件。下面是一个示例脚本:
import pandas as pd
import os
# 假设你需要合并的所有csv文件都在同一个文件夹中,并且文件名依次为"201.csv", "202.csv", ..., "208.csv"等
folder_path = 'E://计算数据//'
excel_file = '数据2月份.xlsx'
csv_files = [str(i)+'.csv' for i in range(201, 209)] # 根据你的实际情况修改
# 首先读取excel文件
df = pd.read_excel(os.path.join(folder_path, excel_file), index_col=0)
# 循环读取每个csv文件,并与excel文件进行合并
for csv_file in csv_files:
df2 = pd.read_csv(os.path.join(folder_path, csv_file), index_col=0, encoding='gb2312')
df = pd.merge(df, df2, on='产品名称', how='left')
# 将合并后的数据保存到excel文件中
df.to_excel(os.path.join(folder_path, excel_file))
这个脚本将大大简化你的代码,并提高了代码的可读性。希望这个答案对你有所帮助!
|
|