Python 从列表列表创建数据帧

Python 从列表列表创建数据帧,python,pandas,python-docx,Python,Pandas,Python Docx,我正在尝试使用DocxPython来组合多个只包含表的word文档。代码查找指定文件夹中的所有docx文件,并创建数据列表。但是,我一直在将这些数据从列表转换为数据帧。 . 我编写的代码如下: 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

我正在尝试使用DocxPython来组合多个只包含表的word文档。代码查找指定文件夹中的所有docx文件,并创建数据列表。但是,我一直在将这些数据从列表转换为数据帧。 . 我编写的代码如下:

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 OBJ有效


任何帮助都将不胜感激

而不是
li.append(df)
try
print(type(df))
并查看返回的内容。另外,考虑在你的函数中添加类型提示,MyPy可能在你运行这个代码之前指出你的问题。嘿,丹,谢谢你的建议。我一定会调查这件事。至于print(type(df)),输出是“”,错误消息告诉您它需要是DataFrame或Series类型,可能您想要
li.append(pd.concat(df))
?或者更好的是,将concat放在read_docx_表的返回值中