Вы можете проанализировать каждую запись в Mylist
и добавить ее в Pandas DataFrame.
Вот мое решение:
import pandas as pd
Mylist = ['VLAN Name Status Ports', '1 default active Gi1/0/3, Gi1/0/4, Gi1/0/5, Gi1/0/6, Gi1/0/7, Gi1/0/8, Gi1/0/9, Gi1/0/10, Gi1/0/11, Gi1/0/12, Gi1/0/17, Gi1/0/19, Gi1/0/21, Gi1/0/22, Gi1/0/24, Gi1/0/30, Gi1/0/32, Gi1/0/42, Gi1/0/51, Gi1/0/52', '10 ADMIN_SWT active ', '11 ADMIN_WIFI']
results = []
ports_list = []
output_list = []
# save the headers
headers = Mylist.pop(0).split(" ")
# convert string to list of lists
for l in Mylist:
for k in l.split(" "):
# if this is a port add all the port to one cell
if '/' in k:
ports_list.append(k)
else:
output_list.append(k)
output_list.append(' '.join(ports_list))
results.append(output_list)
# clear the temp lists
output_list = []
ports_list = []
# make sure every sublist has only number of elements in headers length
for item in results:
if len(item) < len(headers):
item.append("")
elif len(item) > len(headers):
# remove all the unnecessary elements
del item[len(headers)-1:-1]
df = pd.DataFrame(results, columns = headers)
df.to_csv('out.csv')
Основываясь на вашем примере Mylist, это вывод:
VLAN Name Status Ports
0 1 default active Gi1/0/3, Gi1/0/4, Gi1/0/5, Gi1/0/6, Gi1/0/7, G...
1 10 ADMIN_SWT active
2 11 ADMIN_WIFI