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

news/2025/1/8 23:50:20 标签: python

读取指定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")


http://www.niftyadmin.cn/n/5816988.html

相关文章

在FreeBSD、Windows、Ubuntu24三种平台下安装Racket

Racket 简介 Racket 是一种多范式编程语言,源自 Scheme 语言,主要用于教学、研究和软件开发。它具有以下几个显著特点: 多范式支持:Racket 支持函数式编程、命令式编程和面向对象编程,允许开发者根据需求选择合适的编…

Godot最佳实践个人转述

前言 这个所谓的“最佳实践”是Godot官方手册里的一章,也是不得不品的一章。细细品味了一下感觉很重要就单独拿出来记录一下,主要目的是为了梳理和理解Godot和它背后的关于游戏引擎相关的大道理。 对于精神强迫症较强的人而言,使用某个工具进…

K8S中的Pod生命周期之容器探测

容器探测 在Kubernetes中,确实存在两种类型的探针,用于确保容器实例的健康和可用性: Liveness Probe(存活性探针):这种探针用于判断容器是否仍然处于“存活”状态。如果一个容器的存活性探针失败&#xff…

Blazor用户身份验证状态详解

在 Blazor 应用程序中,AuthenticationState 是一个核心概念,用于表示用户的身份验证状态。它提供有关当前用户的信息,例如是否已登录、用户的身份信息(如用户名、角色等)。 AuthenticationState 通常由 Authenticatio…

C# async和await

第一种: 多个异步任务按照顺序执行先让一个异步任务start 然后通过ContinueWith方法 在参数函数的表达式里面开启第二个任务如果要有第三个任务 需要在第二个任务ContinueWith方法中开启第三个任务 以此类推 可以实现多个异步任务顺序执行 上面这种方式绘出现地狱回…

编排式 Saga 模式

编排式 Saga 模式(Orchestrated Saga)是指由一个中央协调者(Orchestrator)控制多个服务间的事务执行。与协作式 Saga 模式不同,编排式 Saga 模式不依赖于事件驱动,而是通过协调者来控制整个 Saga 流程的执行…

Selenium 的四种等待方式及使用场景

Selenium 的四种等待方式及使用场景 隐式等待(Implicit Wait)显式等待(Explicit Wait)自定义等待(Custom Wait)固定等待(Sleep) 1. 隐式等待 定义: 隐式等待是为 WebD…

机器学习和深度学习

机器学习(Machine Learning,简称 ML)和深度学习(Deep Learning,简称 DL)都是人工智能(AI)领域的重要技术,它们的目标是使计算机通过数据学习和自主改进,从而完…