如何将合并后的DataFrame按国家拆分并写入Excel多工作表
实现方法
首先修正你现有代码里的小问题:Import Pandas as pd 要改成小写的 import pandas as pd,Python对大小写敏感。
接下来要把指定4个国家的数据分别存入Excel不同工作表,用pandas.ExcelWriter就能实现,具体代码如下:
import pandas as pd import numpy as np # 读取文件并合并数据 file = pd.ExcelFile(r"p:\test\sample.xlsx") df1 = pd.read_excel(file, 'sample1') df2 = pd.read_excel(file, 'sample2') df3 = pd.merge(df1, df2, left_on='country', right_on='Country', how='left').drop('amount', axis=1) # 定义需要单独导出的4个国家列表,替换成你实际需要的国家名称 target_countries = ['国家A', '国家B', '国家C', '国家D'] # 创建ExcelWriter对象,指定输出文件路径 with pd.ExcelWriter(r"p:\test\output_countries.xlsx") as writer: # 循环每个目标国家 for country in target_countries: # 筛选当前国家的数据 country_df = df3[df3['country'] == country] # 将筛选后的数据写入以国家名称命名的工作表 country_df.to_excel(writer, sheet_name=country, index=False)
关键说明
pd.ExcelWriter是Pandas批量写入多工作表的核心工具,用with语句可自动处理文件的打开和关闭,避免资源泄漏sheet_name=country直接用国家名称作为工作表名,清晰直观index=False导出时不写入DataFrame的索引列,避免生成多余列
如果不确定df3里的国家列表,可先执行print(pd.unique(df3['country']))查看,再把需要的4个国家填入target_countries列表即可。
内容的提问来源于stack exchange,提问作者Ramesh
相关产品推荐
相关产品推荐

