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")
相关推荐
紫丁香几秒前
pytest_自动化测试5
python·功能测试·单元测试·集成测试·pytest
姚青&2 分钟前
Pytest fixture 参数化(params 参数)
开发语言·python·pytest
2301_793804694 分钟前
深入理解Python的if __name__ == ‘__main__‘
jvm·数据库·python
qyzm4 分钟前
牛客周赛 Round 136
数据结构·python·算法
紫檀香5 分钟前
Alembic入门教程
后端·python
2401_833197737 分钟前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
wayz119 分钟前
DuckDB 完全指南:从入门到精通
python·金融·量化交易
暮冬-  Gentle°11 分钟前
用Python批量处理Excel和CSV文件
jvm·数据库·python
m0_7369142211 分钟前
服务器上pip install spacy卡住解决方法
开发语言·python
小陈工16 分钟前
2026年3月22日技术资讯洞察:数据库优化进入预测时代,网络安全威胁全面升级
java·开发语言·数据库·python·安全·web安全·django