Python:字Table到数据框
Python: Word Table to Dataframe
我正在尝试使用以下代码将 Word Table 放入 DataFrame 中...
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)
代码运行,但是当我去打印输出时它是...
[['PERFORMANCE MEASURES', 'GO', 'NO-GO', 'N/A'], ['1. Put on Body Substance Isolation.', '', '', ''], ['2. Opened the airway used a manual maneuver.', '', '', '']]
数据帧通常是这样打印的吗?我见过其他示例,当您在其上调用 print
时,数据帧以漂亮的 table 结构打印。我不确定为什么我在调用 print
时没有得到像 table 这样的结构。非常感谢任何帮助!
编辑:
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
当前是列表的列表,而不是 pandas.DataFrame
您可以使用 pandas.DataFrame(df)
[=15= 将数组 df
转换为框架]
# 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))
我正在尝试使用以下代码将 Word Table 放入 DataFrame 中...
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)
代码运行,但是当我去打印输出时它是...
[['PERFORMANCE MEASURES', 'GO', 'NO-GO', 'N/A'], ['1. Put on Body Substance Isolation.', '', '', ''], ['2. Opened the airway used a manual maneuver.', '', '', '']]
数据帧通常是这样打印的吗?我见过其他示例,当您在其上调用 print
时,数据帧以漂亮的 table 结构打印。我不确定为什么我在调用 print
时没有得到像 table 这样的结构。非常感谢任何帮助!
编辑:
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
当前是列表的列表,而不是 pandas.DataFrame
您可以使用 pandas.DataFrame(df)
[=15= 将数组 df
转换为框架]
# 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))