python 批量将中文名转换为拼音


Posted in Python onFebruary 07, 2021

有时在处理文件时候,我们需要将中文姓名转换为拼音,或者是转换为拼音首字母,本文将介绍三种Python实现的方法,最后给一个批量操作的代码案例!

 一、xpinyin

开门见山,Python中文字转拼音可以使用xpinyin,直接使用pip安装即可?

pip install xpinyin -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

接着导入xpinyin下的 Pinyin 方法如下

from xpinyin import Pinyin

首先试试中文名转拼音,

p = Pinyin()
result1 = p.get_pinyin('叶伏天')
result1

结果如下:

'ye-fu-tian'

tone_marks可以显示声调

result2 = p.get_pinyin('叶伏天', tone_marks='marks')

结果如下:

'yè-fú-tiān'

去掉空格?

s = result1.split('-')
result3 = s[0].capitalize() + ' ' + ''.join(s[1:]).capitalize()
result3

结果如下:
'Ye Futian'

python 批量将中文名转换为拼音

有时需要中文名转拼音首字母,也很简单?

python 批量将中文名转换为拼音

二、pypinyin

另一种方法是使用pypinyin,安装同样可以使用pip

# 安装
pip install pypinyin -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

直接导入就行?

import pypinyin

再来看看中文名转拼音的实现办法

result1 = pypinyin.pinyin('叶庭云', style=pypinyin.NORMAL)
result1

结果如下:

[['ye'], ['ting'], ['yun']]

启用多音节来实现声调

result2 = pypinyin.pinyin('叶庭云', heteronym=True)
result2

结果如下:

[['yè', 'xié'], ['tíng'], ['yún']]

因为返回的是一个嵌套的list,所以需要简单调整一下

result_ = [i[0] for i in result1]
result3 = result_[0].capitalize() + ' ' + ''.join(result_[1:]).capitalize()
result3

结果如下:

'Ye Tingyun'

启用多音字模式时,竟然发现 ‘叶' 也是多音字,查询了资料发现确实是这样,涨知识啦!

python 批量将中文名转换为拼音

python 批量将中文名转换为拼音

下面是中文名转拼音首字母的方法

python 批量将中文名转换为拼音

三、snownlp

最后一种办法是使用snownlp,同样的pip安装与导入如下:

# 安装
pip install snownlp -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
# 导入
from snownlp import SnowNLP

中文名转拼音?

s = SnowNLP('叶庭云')
s.pinyin

结果如下:

['ye', 'ting', 'yun']

将list转为字符串

result4 = s.pinyin[0].capitalize() + ' ' + ''.join(s.pinyin[1:]).capitalize()
result4

结果如下:

'Ye Tingyun'

python 批量将中文名转换为拼音

最后是中文名转拼音首字母

python 批量将中文名转换为拼音

四、批量将中文名转换成拼音

现在,掌握了基本使用后,我们就能利用批量操作来解放双手

import pypinyin
import pandas as pd

df = pd.read_excel('学生名单_test.xls')
df.head()

先导入一份学生名单如下

python 批量将中文名转换为拼音

下面是使用pypinyin批量将全部学生的中文姓名转换为拼音

pinyin_name = []
first_pinyin = []
for i in df['姓名']:
  result = pypinyin.pinyin(i, style=pypinyin.NORMAL)
  result_ = [i[0] for i in result]
  result2 = result_[0].capitalize() + ' ' + ''.join(result_[1:]).capitalize()
  result3 = ''.join([i[0].upper() for i in result_])
  print(result2, i, sep=' ')
  pinyin_name.append(result2)
  first_pinyin.append(result3)
  
df['英文名'] = pinyin_name
df['拼音首字母'] = first_pinyin
df.head()

或者是转换为拼音首字母,运行结果如下:

python 批量将中文名转换为拼音

以上就是python 批量将中文名转换为拼音的详细内容,更多关于python 中文名转换为拼音的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
简单介绍Python中的readline()方法的使用
May 24 Python
Python中一行和多行import模块问题
Apr 01 Python
python模块smtplib学习
May 22 Python
Python中使用__new__实现单例模式并解析
Jun 25 Python
Python缓存技术实现过程详解
Sep 25 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
Jun 30 Python
基于tensorflow for循环 while循环案例
Jun 30 Python
使用TensorBoard进行超参数优化的实现
Jul 06 Python
一文详述 Python 中的 property 语法
Sep 01 Python
Python中的嵌套循环详情
Mar 23 Python
如何用用Python将地址标记在地图上
Feb 07 #Python
python 三种方法提取pdf中的图片
Feb 07 #Python
Python 转移文件至云对象存储的方法
Feb 07 #Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 #Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 #Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 #Python
Pandas数据分析的一些常用小技巧
Feb 07 #Python
You might like
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
ASP Json Parser修正版
2009/12/06 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
Python中优化NumPy包使用性能的教程
2015/04/23 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
pycharm中使用anaconda部署python环境的方法步骤
2018/12/19 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
python logging.basicConfig不生效的原因及解决
2020/02/20 Python
pytorch ImageFolder的覆写实例
2020/02/20 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
大四本科生的自我评价
2013/12/30 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
法人任命书范本
2014/06/04 职场文书
党员学习群众路线教育实践活动对照检查材料
2014/09/23 职场文书
2014大学校园光棍节活动策划书
2014/09/29 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
投资合作意向书范本
2015/05/08 职场文书
公司要求试用期员工提交“述职报告”,该怎么写?
2019/07/17 职场文书
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android