python 去除dataframe中的空行_【word文档自动化处理】用python实现字音回填

6feee0b3f85b1c2cc296b689a1d7d3ec.png

大家好,我是小小明,今天我要给大家分享的是两个word文档处理的案例,核心是读取excel的数据,按照指定的规则写入到word中。

之前们已经分享过一些pandas读写excel的例子,这次我们需要在此基础上还需读写word文档。

python-docx简介

利用python读写word文档的库是python-docx,安装:

pip install python-docx

python-docx 官方文档:https://python-docx.readthedocs.io/en/latest/

基本的对象关系:

90614c357f040b3794781f538f11bdf4.png

单字拆分处理

之前遇到一个需求:

6e8ae501a830201150384abd4e00cc83.png
image-20201230110530386

分析需求呢,会发现它要求在word文档中添加一行在excel对应的声韵调,若音1声超过1个字符还需将最后一个字符上标,音1韵不上标,音1调需整体上标。

为了解决这个问题,首先我们需要处理出我们需要的数据,每个单字对应的字音(音韵声)。

自然第一步是读取excel文件,最终产生以调查条目为键,声韵调作为值的字典,而音1声超过1个字符需将最后一个字符上标,所以音1声应该把不需上标和需要上标的分开存储,最终形成一个四元组。

看看代码吧:

01

 数据读取 

import pandas as pd

df = pd.read_excel("老男单字.xls", usecols=[0, 1, 3, 4, 5], dtype={ '编号': 'str'})
df.head()
编号 调查条目 音1声 音1韵 音1调
0001 t o 44
0002 th o 44
0003 t a 13
0004 l o 21
0005 ts o 35

单字对应的字音字典生成

symbols = {}
for row in df.values:
    k = row[1]
    a = row[2].strip()
    if len(a) > 1:
        v = (a[:-1], a[-1], row[3].strip(), str(row[4]))
    else:
        v = (a, "", row[3].strip(), str(row[4]))
    symbols[k] = v

利用pandas查看生成结果:

pd.DataFrame.from_dict(symbols, 'index').head(10)
137b295f379ac1e590df3cc59591e7ee.png

02

 测试数据匹配

好,接下来,我们尝试读取word文档的第一个表格,并匹配获取每个字音需要添加的音韵调:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值