Создать pandas фрейм данных из списка списков - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь использовать docx python для объединения документов из нескольких слов, которые содержат только таблицы. Код ищет все файлы docx в указанной папке и создает список данных. Однако я застрял в преобразовании этих данных из списка в pandas фрейм данных. Ссылка на таблицы, в которые я пытаюсь скопировать, находится здесь . Код, над которым я работал, находится здесь:

import pandas as pd
import io
import os
import csv
from docx import Document
import glob

def read_docx_tables(filename, tab_id=None, **kwargs):

    def read_docx_tab(tab, **kwargs):
        vf = io.StringIO()
        writer = csv.writer(vf)
        for row in tab.rows:
            writer.writerow(cell.text for cell in row.cells)
        vf.seek(0)
        return pd.read_csv(vf, **kwargs)

    doc = Document(filename)
    if tab_id is None:
        return [read_docx_tab(tab, **kwargs) for tab in doc.tables]
    else:
        try:
            return read_docx_tab(doc.tables[tab_id], **kwargs)
        except IndexError:
            print('Error: specified [tab_id]: {}  does not exist.'.format(tab_id))
            raise

path = 'C:\\data\\' # use your path
filelist = glob.glob(path + "/*.docx")

li = []
for file in filelist:
    df= read_docx_tables(file)
    li.append(df)
print(li)

, если я попробую код: в конце data = pd.concat (li) возникает следующая ошибка: TypeError: невозможно объединить объект типа ''; действительны только Series и DataFrame ob js.

Буду признателен за любую помощь

...