如何从docx文件中的表中提取数据并将其转换为数据框阿拉伯数据

问题描述

我正在尝试从Word文件.docx的表中提取数据,并使用python将其转换为数据框。 注意:它是阿拉伯文字,所以我正在使用编码(“ utf-8”)

直到现在,我仍然可以获取.docx文件并获取表(具有13列),但是我无法显示文本。

我的代码中的错误在哪里?

代码:

import pandas as pd
import docx
        
         
document = docx.Document(path)
table = document.tables[0]
print(table)
        
data = []
        
for row in table.rows:    
    text = (row.cells[0].paragraphs[0].text.encode('utf-8'))
    data.append(text)
    print(data)
    
    
df = pd.DataFrame(data)

结果:

[b'']
[b'',b'']
[b'',b'',b'\xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa']
[b'',b'\xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa',b'\xd9\x81\xd8\xb1\xd8\xb9\xd8\xa7\xd9\x84\xd8\xaa\xd8\xad\xd9\x84\xd9\x8a\xd9\x84\xc2\xa0\n\n\n\n\n\n\n\n\n\n\n\n\n']
[b'',b'\xd9\x81\xd8\xb1\xd8\xb9\xd8\xa7\xd9\x84\xd8\xaa\xd8\xad\xd9\x84\xd9\x8a\xd9\x84\xc2\xa0\n\n\n\n\n\n\n\n\n\n\n\n\n',b'']

解决方法

首先,您应该删除.encode('utf-8'),这就是为什么结果不可读的原因。


第二,您只访问每一行的第一列(row.cells[0])。

您需要添加另一个for loop来浏览各列,如下所示:

for row_index,row in enumerate(table.rows):
    data.append([])
    for col_index in range(13): # Loop through columns 
        cell_text= row.cells[col_index].paragraphs[0].text
        data[row_index].append(cell_text)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...