You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于特定列字符串值拆分Excel工作表?求R/Python解决方案

按特定列拆分Excel为多个工作表的解决方案

下面分别提供Python和R的实现方案,解决手动拆分耗时的问题。

Python 实现方案

依赖准备

需要安装pandas和openpyxl库,用于读取和写入Excel文件:

pip install pandas openpyxl

代码实现

方案1:拆分到同一个Excel文件的多个工作表

将每个城市的数据保存为目标Excel文件中的独立工作表:

import pandas as pd

# 读取原始Excel文件
df = pd.read_excel("原始数据.xlsx")

# 按"City Name"列分组,遍历每个分组
with pd.ExcelWriter("拆分结果.xlsx") as writer:
    for city, group in df.groupby("City Name"):
        # 将分组数据写入以城市名命名的工作表
        group.to_excel(writer, sheet_name=f"TABLE_{city.upper()}", index=False)

方案2:拆分到独立的Excel文件

每个城市的数据保存为单独的Excel文件:

import pandas as pd
import os

# 创建保存结果的文件夹(如果不存在)
os.makedirs("拆分结果文件夹", exist_ok=True)

# 读取原始数据
df = pd.read_excel("原始数据.xlsx")

# 遍历分组,生成独立文件
for city, group in df.groupby("City Name"):
    file_name = f"拆分结果文件夹/TABLE_{city.upper()}.xlsx"
    group.to_excel(file_name, index=False)

R 实现方案

依赖准备

需要安装readxl(读取Excel)和openxlsx(写入多工作表Excel)库:

install.packages(c("readxl", "openxlsx"))

代码实现

方案1:拆分到同一个Excel文件的多个工作表

library(readxl)
library(openxlsx)

# 读取原始数据
df <- read_excel("原始数据.xlsx")

# 创建Excel写入对象
wb <- createWorkbook()

# 按"City Name"分组处理
city_groups <- split(df, df$`City Name`)
for (city in names(city_groups)) {
    # 添加工作表并写入数据
    addWorksheet(wb, sheetName = paste0("TABLE_", toupper(city)))
    writeData(wb, sheet = paste0("TABLE_", toupper(city)), x = city_groups[[city]], rowNames = FALSE)
}

# 保存结果
saveWorkbook(wb, "拆分结果.xlsx", overwrite = TRUE)

方案2:拆分到独立的Excel文件

library(readxl)
library(writexl)
library(fs)

# 创建结果文件夹
dir_create("拆分结果文件夹", recurse = TRUE)

# 读取原始数据
df <- read_excel("原始数据.xlsx")

# 分组并生成独立文件
city_groups <- split(df, df$`City Name`)
for (city in names(city_groups)) {
    file_path <- path("拆分结果文件夹", paste0("TABLE_", toupper(city), ".xlsx"))
    write_xlsx(city_groups[[city]], path = file_path)
}

内容的提问来源于stack exchange,提问作者neo devn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 13:35:20