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")
相关推荐
ATMQuant3 分钟前
量化策略开发08:Lasso因子选择 - 因子动物园的断舍离
python·量化交易·lasso·vnpy·多因子选股
ATMQuant2 小时前
量化指标解码21:逻辑回归支撑阻力 - 让逻辑回归给关键价位打分
python·机器学习·逻辑回归·量化交易·技术指标
q0371803 小时前
深色 IDE 截图 OCR 老是漏字,我加了一层预处理,顺手把识别结果做成了可搜索历史
python
蜗牛8753 小时前
个人机票监控开源项目:6 个平台、10 条通道的自托管方案
python
秋名山小白4 小时前
Playwright UI 自动化测试实战教程
python·ui
AI源码5 小时前
基于 Python 的汽车市场数据分析与可视化平台
python·数据分析·汽车
会飞锦鲤5 小时前
基于 SVM + HOG 的铸造缺陷检测系统
python·opencv·机器学习·计算机视觉·缺陷检测·图像分类·svm
starrysky8106 小时前
zipfile 中文乱码修复:把已知 GBK 旧 ZIP 解压到正确中文目录
python
用户91294046848426 小时前
Codex 从零到能交付(09):让 Codex 写有用的测试,而不是只测成功路径
python
2601_967987376 小时前
Debian如何配置Python调试工具
python·debian·pdb·调试工具·ipdb