目录
1. 读取多个 Excel 文件并合并2. 批量处理多个 Excel 文件3. 从多个 Excel 文件中提取特定信息4. 使用 openpyxl 处理多个 Excel 文件5. 合并多个 Excel 文件到一个工作簿的不同工作表6. 批量处理多个 Excel 文件并进行数据清洗7. 从多个 Excel 文件中提取特定列并合并8. 批量重命名多个 Excel 文件中的工作表9. 批量导出 Excel 数据到 CSV 文件10. 批量处理多个 Excel 文件并进行数据分析1. 读取多个 Excel 文件并合并
假设你有一个文件夹,里面包含多个 Excel 文件,你想将这些文件合并成一个 DataFrame。
import pandas as pdimport os# 文件夹路径folder_path = 'path/to/your/excel/files'# 获取文件夹中的所有 Excel 文件excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]# 创建一个空的 DataFrame 来存储所有数据all_data = pd.DataFrame()# 逐个读取每个 Excel 文件并将数据追加到 all_data 中for file in excel_files: file_path = os.path.join(folder_path, file) df = pd.read_excel(file_path) all_data = pd.concat([all_data, df], ignore_index=True)# 查看合并后的数据print(all_data.head())
2. 批量处理多个 Excel 文件
假设你需要对多个 Excel 文件进行相同的处理(例如,添加一列、过滤数据等)。
import pandas as pdimport os# 文件夹路径folder_path = 'path/to/your/excel/files'output_folder = 'path/to/output/folder'# 确保输出文件夹存在os.makedirs(output_folder, exist_ok=True)# 获取文件夹中的所有 Excel 文件excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]# 处理每个 Excel 文件for file in excel_files: file_path = os.path.join(folder_path, file) df = pd.read_excel(file_path) # 添加一列 df['New_Column'] = 'Some Value' # 过滤数据 filtered_df = df[df['Some_Column'] > 100] # 保存处理后的数据 output_file_path = os.path.join(output_folder, file) filtered_df.to_excel(output_file_path, index=False)print("Processing complete.")
3. 从多个 Excel 文件中提取特定信息
假设你需要从多个 Excel 文件中提取特定的信息(例如,某个特定单元格的数据)。
import pandas as pdimport os# 文件夹路径folder_path = 'path/to/your/excel/files'# 获取文件夹中的所有 Excel 文件excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]# 存储结果results = []# 从每个 Excel 文件中提取特定信息for file in excel_files: file_path = os.path.join(folder_path, file) df = pd.read_excel(file_path) # 假设我们需要提取第一行第一列的数据 specific_value = df.iloc[0, 0] # 将结果存储在一个列表中 results.append((file, specific_value))# 打印结果for file, value in results: print(f"File: {file}, Specific Value: {value}")
4. 使用 openpyxl 处理多个 Excel 文件
如果你需要更细粒度地控制 Excel 文件(例如,修改特定单元格、格式化等),可以使用 openpyxl 库。
import openpyxlimport os# 文件夹路径folder_path = 'path/to/your/excel/files'output_folder = 'path/to/output/folder'# 确保输出文件夹存在os.makedirs(output_folder, exist_ok=True)# 获取文件夹中的所有 Excel 文件excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]# 处理每个 Excel 文件for file in excel_files: file_path = os.path.join(folder_path, file) workbook = openpyxl.load_workbook(file_path) sheet = workbook.active # 修改特定单元格 sheet['A1'] = 'New Value' # 保存处理后的文件 output_file_path = os.path.join(output_folder, file) workbook.save(output_file_path)print("Processing complete.")
5. 合并多个 Excel 文件到一个工作簿的不同工作表
假设你有多个 Excel 文件,并希望将它们合并到一个新的 Excel 工作簿中的不同工作表中。
import pandas as pdimport os# 文件夹路径folder_path = 'path/to/your/excel/files'output_file = 'merged_workbook.xlsx'# 获取文件夹中的所有 Excel 文件excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]# 创建一个新的 ExcelWriter 对象with pd.ExcelWriter(output_file, engine='openpyxl') as writer: # 处理每个 Excel 文件并将数据写入不同的工作表 for file in excel_files: file_path = os.path.join(folder_path, file) df = pd.read_excel(file_path) # 使用文件名作为工作表名称 sheet_name = os.path.splitext(file)[0] # 写入数据 df.to_excel(writer, sheet_name=sheet_name, index=False)print("Merging complete.")
6. 批量处理多个 Excel 文件并进行数据清洗
假设你需要对多个 Excel 文件进行数据清洗,例如删除空行、填充缺失值等。
import pandas as pdimport os# 文件夹路径folder_path = 'path/to/your/excel/files'output_folder = 'path/to/output/folder'# 确保输出文件夹存在os.makedirs(output_folder, exist_ok=True)# 获取文件夹中的所有 Excel 文件excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]# 处理每个 Excel 文件for file in excel_files: file_path = os.path.join(folder_path, file) df = pd.read_excel(file_path) # 删除空行 df.dropna(how='all', inplace=True) # 填充缺失值 df.fillna(0, inplace=True) # 保存处理后的数据 output_file_path = os.path.join(output_folder, file) df.to_excel(output_file_path, index=False)print("Data cleaning complete.")
7. 从多个 Excel 文件中提取特定列并合并
假设你需要从多个 Excel 文件中提取特定列,并将这些列合并成一个新的 DataFrame。
import pandas as pdimport os# 文件夹路径folder_path = 'path/to/your/excel/files'# 获取文件夹中的所有 Excel 文件excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]# 创建一个空的 DataFrame 来存储所有数据all_data = pd.DataFrame()# 逐个读取每个 Excel 文件并提取特定列for file in excel_files: file_path = os.path.join(folder_path, file) df = pd.read_excel(file_path, usecols=['Column1', 'Column2']) # 将提取的数据追加到 all_data 中 all_data = pd.concat([all_data, df], ignore_index=True)# 查看合并后的数据print(all_data.head())
8. 批量重命名多个 Excel 文件中的工作表
假设你需要批量重命名多个 Excel 文件中的工作表名称。
import openpyxlimport os# 文件夹路径folder_path = 'path/to/your/excel/files'output_folder = 'path/to/output/folder'# 确保输出文件夹存在os.makedirs(output_folder, exist_ok=True)# 获取文件夹中的所有 Excel 文件excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]# 处理每个 Excel 文件for file in excel_files: file_path = os.path.join(folder_path, file) workbook = openpyxl.load_workbook(file_path) # 重命名工作表 if 'OldSheetName' in workbook.sheetnames: sheet = workbook['OldSheetName'] sheet.title = 'NewSheetName' # 保存处理后的文件 output_file_path = os.path.join(output_folder, file) workbook.save(output_file_path)print("Sheet renaming complete.")
9. 批量导出 Excel 数据到 CSV 文件
假设你需要将多个 Excel 文件中的数据批量导出为 CSV 文件。
import pandas as pdimport os# 文件夹路径folder_path = 'path/to/your/excel/files'output_folder = 'path/to/output/csvs'# 确保输出文件夹存在os.makedirs(output_folder, exist_ok=True)# 获取文件夹中的所有 Excel 文件excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]# 处理每个 Excel 文件for file in excel_files: file_path = os.path.join(folder_path, file) df = pd.read_excel(file_path) # 生成输出文件路径 base_name = os.path.splitext(file)[0] output_file_path = os.path.join(output_folder, f'{base_name}.csv') # 导出为 CSV 文件 df.to_csv(output_file_path, index=False)print("Export to CSV complete.")
10. 批量处理多个 Excel 文件并进行数据分析
假设你需要对多个 Excel 文件进行数据分析,例如计算总和、平均值等。
import pandas as pdimport os# 文件夹路径folder_path = 'path/to/your/excel/files'# 获取文件夹中的所有 Excel 文件excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]# 创建一个空的 DataFrame 来存储所有数据all_data = pd.DataFrame()# 逐个读取每个 Excel 文件并将数据追加到 all_data 中for file in excel_files: file_path = os.path.join(folder_path, file) df = pd.read_excel(file_path) # 将数据追加到 all_data 中 all_data = pd.concat([all_data, df], ignore_index=True)# 进行数据分析total_sum = all_data['Some_Column'].sum()average_value = all_data['Some_Column'].mean()# 打印结果print(f"Total Sum: {total_sum}")print(f"Average Value: {average_value}")