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中的各种装饰器详解
Apr 11 Python
Python编程生成随机用户名及密码的方法示例
May 05 Python
python引入导入自定义模块和外部文件的实例
Jul 24 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
简单了解python模块概念
Jan 11 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
Dec 28 Python
python装饰器练习题及答案
Nov 01 Python
python3.x 生成3维随机数组实例
Nov 28 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
Python数据分析入门之教你怎么搭建环境
May 13 Python
聊一聊python常用的编程模块
May 14 Python
Python+腾讯云服务器实现每日自动健康打卡
Dec 06 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
图形数字验证代码
2006/10/09 PHP
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
值得收藏的10道python 面试题
2019/04/15 Python
Python 文件数据读写的具体实现
2020/01/24 Python
python Socket网络编程实现C/S模式和P2P
2020/06/22 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
EJB3推出JPA的原因
2013/10/16 面试题
六年级数学教学反思
2014/02/03 职场文书
室内趣味活动方案
2014/08/24 职场文书
趣味运动会口号
2015/12/24 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
分析Python list操作为什么会错误
2021/11/17 Python
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js