table 提取:将包含文件名和原始文件路径的列添加到 df
table extraction: adding column with file name and path of origin file to df
我需要从多个 docx 报告文档中提取相同的 table。
在列表 'targets_in_dir'
中,我以
格式存储了所有带有路径的文件名
'C:\directory\subdirectory\filename1.docx'
下面的代码完美地从文档中抓取 table 并将键正确分配给列。
import pandas as pd
import docx
from docx.api import Document
document = Document(targets_in_dir[1])
table = document.tables[2]
data = []
keys = None
for i, row in enumerate(table.rows):
text = (cell.text for cell in row.cells)
if i == 0:
keys = tuple(text)
continue
row_data = dict(zip(keys, text))
data.append(row_data)
df = pd.DataFrame(data)
df['report'] = targets_in_dir[1]
print (targets_in_dir[1])
我的问题: 出于跟踪目的,我想在最终的 df 中添加一列,其中每一行都添加了提取行的文件名。我试着用
行来做
df['report'] = targets_in_dir[1]
但奇怪的是它只添加来自 'data_1' 的数据而不是文件名和路径!
report
data_1
C:\directory\subdirectory\filename1.docx
Cumarin
C:\directory\subdirectory\filename1.docx
Piperacin
与此同时,我使用以下代码行自己找到了解决方案。我只是添加 str
df['report'] = str(targets_in_dir[1])
我需要从多个 docx 报告文档中提取相同的 table。
在列表 'targets_in_dir'
中,我以
'C:\directory\subdirectory\filename1.docx'
下面的代码完美地从文档中抓取 table 并将键正确分配给列。
import pandas as pd
import docx
from docx.api import Document
document = Document(targets_in_dir[1])
table = document.tables[2]
data = []
keys = None
for i, row in enumerate(table.rows):
text = (cell.text for cell in row.cells)
if i == 0:
keys = tuple(text)
continue
row_data = dict(zip(keys, text))
data.append(row_data)
df = pd.DataFrame(data)
df['report'] = targets_in_dir[1]
print (targets_in_dir[1])
我的问题: 出于跟踪目的,我想在最终的 df 中添加一列,其中每一行都添加了提取行的文件名。我试着用
行来做df['report'] = targets_in_dir[1]
但奇怪的是它只添加来自 'data_1' 的数据而不是文件名和路径!
report | data_1 |
---|---|
C:\directory\subdirectory\filename1.docx | Cumarin |
C:\directory\subdirectory\filename1.docx | Piperacin |
与此同时,我使用以下代码行自己找到了解决方案。我只是添加 str
df['report'] = str(targets_in_dir[1])