BeautifulSoup Python для Dataframe - PullRequest
       4

BeautifulSoup Python для Dataframe

0 голосов
/ 10 октября 2018

Я пытаюсь преобразовать очищенные данные в pd-фрейм данных (таблица).Информация извлекается с помощью Beautifulsoup из различных тегов (a, span, div).для ul в soup_level1.find ('ul', {'class': "fix3"}):

divjt=ul.find('div',{'class':"topb"})
a=divjt.find('a')
trajectory=a.text.strip()
divloc=ul.find('div',{'class':"under"})
d=divloc.find('div')
sp=ul.find('span',{'class':"blk"})
object=sp.text.strip()
try: 
    sas=ul.find_all('span',{'class':"f1"}) 
    timex=sas[0].text 
except IndexError: 
    timex=''
datalist.append[jobtitle,city,timex]
headers=['Traj', 'Object', 'Time']
A=[trajectory]
B=[object]
C=[timex]
datac=A+B+C
df = pd.DataFrame(datac)

print(df) 

Результат, который я сейчас получаю, равен

 0
0  BRD - TWD
1                          MER
2                         11/10/2018
                                                   0
0  SFX - NYT
1                                               MER
2                                        10/05/2016
                  0
0  GER - BEN
1              MER
2             05/06/2016

Я быв основном хотят «сбросить» эти результаты в правильную таблицу данных, где каждая строка печатается для соответствующего превосходства.

0  BRD - TWD    MER    11/10/2018
1  SFX - NYT    MER    10/05/2016
2  GER - BEN    MER    05/06/2016

Спасибо!

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

Попробуйте использовать zip вместо datac=A+B+C.Как

zip(A, B, C)
0 голосов
/ 10 октября 2018

Я нашел решение - просто нужно добавить значения, а затем легко экспортировать в csv.

    A.append(trajectory)
    B.append(object)
    C.append(timex)

    test_df = pd.DataFrame({'Col1': A,
                           'Col2': B,
                           'Col3': C})
    test_df.to_csv('file_name.csv') 
0 голосов
/ 10 октября 2018

Если вы хотите, чтобы данные в Excel использовали формат csv вместо этого, файл CSV можно открыть в Excel / Libre Office, чтобы получить требуемый результат

var row =  value1 + ":" + value2 + ":" + value3  ;
   await fs.appendFile('file_name.csv', row + os.EOL, function (err) {
    if (err) throw err;
   });

Вот как я это сделал в Javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...