Python:Word表到数据帧

Python:Word表到数据帧,python,pandas,dataframe,docx,Python,Pandas,Dataframe,Docx,我正在尝试使用下面的代码将Word表放入数据帧中 def writejsontable(theDataFrame): print(theDataFrame) print('-----------') for block in iter_block_items(doc): tablestringarray = [] if isinstance(block, Table): df = [['' for i in range(len(block.col

我正在尝试使用下面的代码将Word表放入数据帧中

def writejsontable(theDataFrame):
    print(theDataFrame)
    print('-----------')

for block in iter_block_items(doc):
    tablestringarray = []
    if isinstance(block, Table):
        df = [['' for i in range(len(block.columns))] for j in range(len(block.rows))]
        for i, row in enumerate(block.rows):
            for j, cell in enumerate(row.cells):
                df[i][j] = block.cell(i,j).text
        writejsontable(df)
代码运行,但当我打印输出时

[[“性能测量”、“开始”、“禁止”、“不适用”]、[“1.进行身体物质隔离”、“,”、“,”、“,”,“2.通过手动操作打开气道”、“,”]

数据帧通常是这样打印的吗?我还看到过其他示例,在这些示例中,当您对数据帧调用
print
时,数据帧以漂亮的表状结构打印。当我调用
print
时,我不知道为什么我没有得到那个漂亮整洁的表式结构。非常感谢您的任何帮助

编辑:


您的变量
df
当前是一个列表列表,而不是
pandas.DataFrame
您可以使用
pandas.DataFrame(df)


这个答案有帮助吗?在你的例子中,df是一个列表列表,而不是一个数据框:
df=[''表示范围内的i(len(block.columns))]表示范围内的j(len(block.rows))]
@you Chris这很有意义。我试图创建一个具有正确行/列编号的空数据框,然后填充它。有更好的方法吗?@Bob只是从数组中创建一个数据帧
writejsontable(pd.DataFrame(df))
@Yo\u Chris这太简单了!把这句话作为回答,我很乐意接受。工作起来很有魅力!
def iter_block_items(parent):
    # Get parrent element
    if isinstance(parent, Document):
        parent_elm = parent.element.body
    elif isinstance(parent, _Cell):
        parent_elm = parent._tc
    else:
        raise ValueError("something's not right")
    # Get children in parent element
    for child in parent_elm.iterchildren():
        if isinstance(child, CT_P):
            yield Paragraph(child, parent)
        elif isinstance(child, CT_Tbl):
            yield Table(child, parent)
# df = [['' for i in range(len(block.columns))] for j in range(len(block.rows))]
df= [['PERFORMANCE MEASURES', 'GO', 'NO-GO', 'N/A'],
     ['1. Put on Body Substance Isolation.', '', '', ''],
     ['2. Opened the airway used a manual maneuver.', '', '', '']]

writejsontable(pd.DataFrame(df))