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访问纯真IP数据库脚本分享
Jun 29 Python
Python实现堆排序的方法详解
May 03 Python
python3解析库pyquery的深入讲解
Jun 26 Python
查看python下OpenCV版本的方法
Aug 03 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
Oct 14 Python
浅析python的优势和不足之处
Nov 20 Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 Python
Django实现文件上传下载
Oct 06 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
Python下使用Trackbar实现绘图板
Oct 27 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
编写PHP的安全策略
2006/10/09 PHP
与数据库连接
2006/10/09 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
Python中 Lambda表达式全面解析
2016/11/28 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
使用python实现简单五子棋游戏
2019/06/18 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
2019/09/11 Python
Python文件操作函数用法实例详解
2019/12/24 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
幼儿师范毕业生自荐信
2013/11/09 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
步步惊心观后感
2015/06/12 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书