python_excel列表单元格字符合并、填充、复制操作

读取指定sheet页,根据规则合并指定列,填充特定字符,删除多余的列,每行复制四次,最后写入新的文件中。

python 复制代码
import pandas as pd

"""
读取指定sheet页,根据规则合并指定列,填充特定字符,删除多余的列,每行复制四次,最后生成新的文件
"""


# 原文件和sheet页
sheet_name = "电缆一班"
file_path = r"E:\DPI\深圳-南方电网\0107\第二批400平台命名及台账信息_20250107_bak.xlsx"
# 合并后的文件
file_path_merged = (
    r"E:\DPI\深圳-南方电网\0107\第二批400平台命名及台账信息_20250107_bak_11.xlsx"
)

# 读取Excel文件,用converters处理,保留文本类型数字
df = pd.read_excel(file_path, sheet_name=sheet_name, converters={"SIM卡号": str})

# 合并列'column4'和'column42'到'column4'
column4 = "四级目录"
column42 = "四级目录Ⅰ"
df[column4] = df[column4].astype(str) + "-" + df[column42].astype(str)

# 对列进行处理,如果单元格以"#"开头,则添加"接头"
column5 = "五级目录"
df[column5] = df[column5].apply(lambda x: x + "接头" if str(x).startswith("#") else x)

# 对列进行处理,如果单元格不以"线"结尾,则添加"线"
column3 = "三级目录"
# df[column3] = df[column3].apply(lambda x: x + "线" if not str(x).endswith("线") else x)

# 合并列'column2'、'column3'、'column5'到'column6'
column2 = "二级目录"
column6 = "六级目录"
df[column6] = (
    df[column2].astype(str)
    + df[column3].astype(str)
    + df[column5].astype(str)
    + "小号侧"
)

# 删除指定列'column42'
df.drop(column42, axis=1, inplace=True)

# 创建一个新的数据帧来存储重复的行
df_repeated = pd.DataFrame(df.loc[:].values.repeat(4, axis=0), columns=df.columns)

# 保存到新的Excel文件
df_repeated.to_excel(file_path_merged, sheet_name=sheet_name, index=False)

print("done")
相关推荐
云勤通3 小时前
智慧后勤系统哪家定制能力强
大数据·python
想七想八不如114084 小时前
元学习简单入门
人工智能·pytorch·python·深度学习·学习·机器学习
Zucker n4 小时前
一款适合研究生科研工作安排的日历
linux·数据库·python
尼给路达哟5 小时前
node(koa)和python(fastapi)面试
python·面试·fastapi
曲径海盗6 小时前
【Python 学习第 32 天】字符串基础
python·学习笔记·编程入门
田里的水稻6 小时前
PyTorch_torchvision---数据集下载\TensorBoard可视化
人工智能·pytorch·python·深度学习·机器学习
程序员正茂6 小时前
Win11使用自定义训练集训练ncnn模型
python·yolo·图像识别·移动端·ncnn
zwd20056 小时前
Manim 画布尺寸与像素换算详解:frame_width、frame_height、pixel_width 和画质参数(0.21.0 实测)
python·分辨率·manim·数学动画·frame_width·manim教程
最强小杰7 小时前
Claude Opus 4.8 调用报 529 怎么办?并发限制触发过载——退避策略与降级方案完整指南
运维·网络·python·ai
databook7 小时前
MinMax vs Standard vs Robust:三种特征缩放怎么选
python·机器学习·数据分析