Фрейм данных не выводится в excel

Я отправляю фрагмент своего кода, чтобы попытаться отладить. Я пытаюсь вывести df4 в Excel, но на выходе он остается пустым. Я пытался самостоятельно решить проблему в течение пары часов, но не могу понять, в чем проблема.

from bs4 import BeautifulSoup
import os
import glob
import pandas as pd

os.chdir('C:/Users/PCTR261010/Desktop/Attribute Convert')
FileList = glob.glob('*.txt')

for fname in FileList:
    soup = BeautifulSoup(open(fname), 'html.parser')

    data = soup.find('data').text

    for partno in data.split('\n'):
        df4 = pd.DataFrame([partno.split('\t')])

        sheet_name = ('MPCC@' + soup.find('leafname').text)
        writer = pd.ExcelWriter(os.path.join(fname + '.xlsx'), engine='xlsxwriter')
        df4.to_excel(writer, sheet_name=sheet_name, startrow=0, startcol=0, index=False, header=False)

        writer.save()

ОБРАЗЕЦ ДАННЫХ файла sudo XML

<DATA>
PF0W20DEXQT     Yes NAPA    Proformer       1 qt    0W20    Synthetic   SN  ILSAC GF-5  Dexos 1 Gen 2   NAPA PROFORMER 0W20 SYNTHETIC DEXOS® MOTOR OIL is a superiorquality synthetic motor oil specially formulated from 100% pure virgin base oil and highperformance additives.  Bottle                                              
PF0W20SYQT      Yes NAPA    Proformer       1 qt    0W20    Synthetic   SN  ILSAC GF-5      NAPA PROFORMER 0W20 SYNTHETIC MOTOR OIL is a superior?quality synthetic motor oil specially formulated from 100% pure virgin base oil and highperformance additives.    Bottle                                              
PF10W30COQT         NAPA    Proformer       1 qt    10W30   Conventional    SN  ILSAC GF-5      NAPA PROFORMER 10W30 MOTOR OIL is a premiumquality conventional motor oil specially formulated from 100% pure virgin base oil and highperformance additives.    Bottle                                              
PF10W30HDBQT        Yes NAPA    Proformer       1 qt    10W30   Synthetic Blend CK-4            NAPANAPA PROFORMER 10W30 SYNTHETIC BLEND DIESEL MOTOR OIL is a superiorquality synthetic blend diesel motor oil specially formulated from 100% pure virgin base oil and highperformance additives.  Bottle                                              
PF10W30HDQT         NAPA    Proformer       1 qt    10W30   Conventional    CJ-4 / SN           NAPA PROFORMER 10W30 DIESEL MOTOR OIL is a premiumquality conventional diesel motor oil specially formulated from 100% pure virgin base oil and highperformance additives.  Bottle                                              
PF15W40HDQT         NAPA    Proformer       1 qt    15W40   Conventional    CK-4 / SN           NAPA PROFORMER 15W40 DIESEL MOTOR OIL is a premiumquality conventional diesel motor oil specially formulated from 100% pure virgin base oil and highperformance additives.  Bottle                                              
PF5W20COQT          NAPA    Proformer       1 qt    5W20    Conventional    SN  ILSAC GF-5      NAPA PROFORMER 5W20 MOTOR OIL is a premiumquality conventional motor oil specially formulated from 100% pure virgin base oil and highperformance additives. Bottle                                              
PF5W20SYQT      Yes NAPA    Proformer       1 qt    5W20    Synthetic   SN  ILSAC GF-5      NAPA PROFORMER 5W20 SYNTHETIC MOTOR OIL is a superior?quality synthetic motor oil specially formulated from 100% pure virgin base oil and highperformance additives.    Bottle                                              
PF5W30COQT          NAPA    Proformer       1 qt    5W30    Conventional    SN  ILSAC GF-5      NAPA PROFORMER 5W30 MOTOR OIL is a premiumquality conventional motor oil specially formulated from 100% pure virgin base oil and highperformance additives. Bottle                                              
PF5W30DEXQT     Yes NAPA    Proformer       1 qt    5W30    Synthetic   SN  ILSAC GF-5  Dexos 1 Gen 2   NAPA PROFORMER 5W30 SYNTHETIC DEXOS® MOTOR OIL is a superiorquality synthetic motor oil specially formulated from 100% pure virgin base oil and highperformance additives.  Bottle                                              
PF5W30SYQT      Yes NAPA    Proformer       1 qt    5W30    Synthetic   SN  ILSAC GF-5      NAPA PROFORMER 5W30 SYNTHETIC MOTOR OIL is a superior?quality synthetic motor oil specially formulated from 100% pure virgin base oil and highperformance additives.    Bottle                                              
</DATA>

НЕОБХОДИМЫЙ ВЫПУСК

Выходное изображение

enter image description here

пожалуйста, опубликуйте некоторые образцы данных (вашей переменной data) в формате текста / CSV / Python (НЕ как изображение)

MaxU 11.04.2018 12:23

Обновлено с образцами данных

Sam Palmer 11.04.2018 12:26

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

Sam Palmer 11.04.2018 12:48

На самом деле вы перезаписываете свой файл Excel на каждой итерации ... Каков ваш желаемый набор данных?

MaxU 11.04.2018 12:52

Обновлено изображение необходимого выхода. Но мне в основном нужны данные, разбитые разделителем табуляции.

Sam Palmer 11.04.2018 13:02

Можете ли вы загрузить образец своей переменной data в исходном формате (включая правильные разделители, такие как '\t', потому что теперь эти данные практически невозможно проанализировать)

MaxU 11.04.2018 13:04

Извини, кажется, я не знаю, как это сделать

Sam Palmer 11.04.2018 13:11

Можете ли вы поделиться ссылкой на веб-сайт, который вы пытаетесь проанализировать, или загрузить HTML-код на любой веб-сайт обмена файлами и разместить здесь ссылку?

MaxU 11.04.2018 13:22

Я разбираю файл sudo XML из нашего PIM, который был создан много лет назад и на самом деле не является XML.

Sam Palmer 11.04.2018 13:24

В любом случае нам понадобится образец данных в исходном формате, чтобы предоставить вам протестированное решение.

MaxU 11.04.2018 13:25

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

Sam Palmer 11.04.2018 13:28

Я не нашел лучшего способа поделиться данными на Stack Overflow

Sam Palmer 11.04.2018 13:30

Я не думаю, что могу вам помочь, потому что все вкладки были преобразованы в пробелы с помощью StackOverflow, поэтому мы не можем проанализировать <DATA> ... </DATA>

MaxU 11.04.2018 13:38

Вы можете написать мне прямое сообщение?

Sam Palmer 11.04.2018 13:40

Обновите, я, по крайней мере, получил одну строку данных в нужном мне формате.

Sam Palmer 11.04.2018 15:24
1
15
56
1

Ответы 1

Попробуй это:

def f(fname):
    soup = BeautifulSoup(open(fname), 'html.parser')
    data = soup.find('data').text
    sheet_name = ('MPCC@' + soup.find('leafname').text)

    df = pd.read_csv(io.StringIO(data), sep='\t', header=None)
    df.to_excel((os.path.join(fname + '.xlsx'), sheet_name=sheet_name, index=False, header=False)

# process all files
for fname in FileList:
    f(fname)

Спасибо, но у меня это не сработало. Я не уверен, почему там pd.read_csv

Sam Palmer 11.04.2018 13:17

Другие вопросы по теме