读取到Excel文件的数据:
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的数据一一对应。
效果如下:
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
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')