#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))