Python拆分Excel文件数据以及与拆分列的数据一一对应

Python拆分Excel文件数据以及与拆分列数据一一对应

读取到Excel文件的数据:

python 复制代码
    CITY    COUNTY   TOWN   是否                   AOL                                                                AVGPON
0   贵港    桂平县  江口镇  False             贵港桂平市江口镇-AOL001-ZX-C300||贵港桂平市江口镇-AOL002-ZX-C600    贵港桂平市江口镇-AOL001-ZX-C300/1-12-10||贵港桂平市江口镇-AOL001-ZX-C300/1-13-12||贵港桂平市江口镇-AOL001-ZX-C300/1-13-7||贵港桂平市江口镇-AOL002-ZX-C600/1-3-1||贵港桂平市江口镇-AOL002-ZX-C600/1-3-2||贵港桂平市江口镇-AOL002-ZX-C600/1-5-7||贵港桂平市江口镇-AOL002-ZX-C600/1-5-8

需求:需要把AOL和AVGPON的内容以"||"分列,并要与AOL和AVGPON的数据一一对应。

效果如下:

python 复制代码
    CITY    COUNTY   TOWN   是否                   AOL                                 AVGPON
0   贵港    桂平县  江口镇  False             贵港桂平市江口镇-AOL001-ZX-C300    贵港桂平市江口镇-AOL001-ZX-C300/1-12-10
0   贵港    桂平县  江口镇  False             贵港桂平市江口镇-AOL001-ZX-C300    贵港桂平市江口镇-AOL001-ZX-C300/1-13-12
0   贵港    桂平县  江口镇  False             贵港桂平市江口镇-AOL001-ZX-C300    贵港桂平市江口镇-AOL001-ZX-C300/1-13-7
0   贵港    桂平县  江口镇  False             贵港桂平市江口镇-AOL002-ZX-C600    贵港桂平市江口镇-AOL002-ZX-C600/1-3-1
0   贵港    桂平县  江口镇  False             贵港桂平市江口镇-AOL002-ZX-C600    贵港桂平市江口镇-AOL002-ZX-C600/1-3-2
0   贵港    桂平县  江口镇  False             贵港桂平市江口镇-AOL002-ZX-C600    贵港桂平市江口镇-AOL002-ZX-C600/1-5-7
0   贵港    桂平县  江口镇  False             贵港桂平市江口镇-AOL002-ZX-C600    贵港桂平市江口镇-AOL002-ZX-C600/1-5-8

Python代码实现

python 复制代码
import pandas as pd

# 读取原始数据文件
data = pd.read_excel('AVGPON口信息.xlsx', sheet_name='0', header=1)#跳过第一行合并的表头
# 创建DataFrame
df = pd.DataFrame(data)

# 新建空列表用于存储转换后的数据
new_data = []

# 对每一行进行处理
for _, row in df.iterrows():
    olt_list = str(row['AOL']).split('||')
    pon_list = str(row['AVGPON']).split('||')
    # 对每个AOL进行处理
    for olt in olt_list:
        # 找到对应的AVGPON信息
        matching_pon = [pon for pon in pon_list if olt in pon]
        # 创建新的数据行
        for pon in matching_pon:
            new_row = row.copy()
            new_row['AOL-NEW'] = olt
            new_row['AVGPON-NEW'] = pon
            # 添加到新的数据列表
            new_data.append(new_row)

# 创建新的DataFrame
new_df = pd.DataFrame(new_data)

# 打印结果
print(new_df)
new_df.to_excel('0100-Sheet2.xlsx', sheet_name='0')
相关推荐
我叫小白菜6 分钟前
【Java_EE】单例模式、阻塞队列、线程池、定时器
java·开发语言
狐凄12 分钟前
Python实例题:基于 Python 的简单聊天机器人
开发语言·python
weixin_446122461 小时前
JAVA内存区域划分
java·开发语言·redis
悦悦子a啊1 小时前
Python之--基本知识
开发语言·前端·python
QuantumStack2 小时前
【C++ 真题】P1104 生日
开发语言·c++·算法
whoarethenext2 小时前
使用 C++/OpenCV 和 MFCC 构建双重认证智能门禁系统
开发语言·c++·opencv·mfcc
笑稀了的野生俊3 小时前
在服务器中下载 HuggingFace 模型:终极指南
linux·服务器·python·bash·gpu算力
Naiva3 小时前
【小技巧】Python+PyCharm IDE 配置解释器出错,环境配置不完整或不兼容。(小智AI、MCP、聚合数据、实时新闻查询、NBA赛事查询)
ide·python·pycharm
代码的奴隶(艾伦·耶格尔)3 小时前
后端快捷代码
java·开发语言
Jay_5153 小时前
C++多态与虚函数详解:从入门到精通
开发语言·c++