使用python计算单词docx中的行及其值

时间:2017-10-11 05:05:19

标签: python python-3.x pandas numpy python-docx

我有一个单词docx,它不包含表格。每个表都有不同的行和列名称,但在所有不同的表中,“测试自动化”中的所有行名称都相同,它的值为“是或否”。在这里,我的问题是我如何计算“测试自动化”的总数没有这样的行值“TOTAL NO OF TEST AUTOMATION:yes = 200,no = 100”我正在使用python 3.6。我是python的新手,请帮助我。我的表提取和特定列提取的示例代码。

样本数据图像:样本数据enter image description here

我的代码看起来像这样提取docx表

import pandas as pd
from docx.api import Document

document = Document('test_word.docx')
table = document.tables[0]

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)
    print (data)

df = pd.DataFrame(data)
print(df)

1 个答案:

答案 0 :(得分:1)

这是计算测试自动化的Yes值所需的基本逻辑。您需要处理所需的任何Pandas操作:

from docx import Document

def table_test_automation(table):
    for row in table.rows:
        row_heading = row.cells[0].text
        if row_heading != 'Test automation':
            continue
        yes_no = row.cells[3].text
        return 1 if yes_no == 'Yes' else 0

    return 0


document = Document('test_word.docx')
yes_count = 0
for table in document.tables:
    yes_count += table_test_automation(table)
print(yes_count)