Разделенный список в столбцах и строках фрейма данных panda

#python #pandas #list #split #web-crawler

#python #pandas #Список #разделение #веб-сканер

Вопрос:

Я написал небольшой поисковый робот для веб-сайта и получил список в следующей структуре:

'DRAFT ACT: OPENnSome Information nTopicnJusticenTypenImplementingnPeriodn12.11.2020 - 10.12.2020', 'DRAFT ACT: OPENSome other InformationnTopicnJusticenTypenImplementingnPeriodn12.11.2020 - 10.12.2020,...

Теперь я хотел бы разделить этот текстовый список на фрейм данных pandas, разделив столбцы на n и строки , . К сожалению, я не знаю, как подойти к нему. Может кто-нибудь мне помочь? Есть ли простой способ разделить этот список с помощью pandas или другого пакета?

Таким образом, результат должен выглядеть следующим образом:

      Column1          Column2                Column3 Column4  Column5 Columns6     Column7  Column8
Row1 DRAFT ACT: OPEN  Some Information       Topic   Justice  Type    Implementing Period   12.11.2020 - 10.12.2020'
Row2 DRAFT ACT: OPEN  Some other Information Topic   Justice  Type    Implementing Period   12.11.2020 - 10.12.2020'
  

Заранее большое вам спасибо!

Ответ №1:

допустим, вы получаете список таких строк.

 list1=['DRAFT ACT: OPENnSome Information nTopicnJusticenTypenImplementingnPeriodn12.11.2020 - 10.12.2020', 'DRAFT ACT: OPENnSome other InformationnTopicnJusticenTypenImplementingnPeriodn12.11.2020 - 10.12.2020']
  

вы можете выполнить итерацию списка и разделить каждый элемент на n

Нравится:

 list1=[x.split('n') for x in list1]
  

или как:

 for idx,item in enumerate(list1):
    list1[idx]=item.split('n')
  

теперь вы можете создать фрейм данных с помощью list1.

 import pandas as pd
df=pd.DataFrame(list1,columns=['Column1','Column2','Column3','Column4','Column5','Column6','Column7','Column8'])

  

Ответ №2:

 import pandas as pd

x = "'DRAFT ACT: OPENnSome Information nTopicnJusticenTypenImplementingnPeriodn12.11.2020 - 10.12.2020', 'DRAFT ACT: OPENnSome other InformationnTopicnJusticenTypenImplementingnPeriodn12.11.2020 - 10.12.2020'"

x = x.replace("n","_")

x = x.replace(",","n")

x = x.replace("_",",")

with open("output.csv", 'w') as file:
    
    file.write(x)

with open('output.csv','r') as file:

    z = pd.read_csv(file)

print(z, type(z))