按名字判断班级小姐姐的数量
大学快要开学了,我通过py关系弄到了一份班级的列表,但是没有性别,正好这几天看到一个通过名字猜测性别的库
通过姓名猜测性别
在最近,发现了一个ngender
库,作用只有一个 通过姓名猜测性别,使用方式也很简单
pip install ngender
>>> import ngender
>>> ngender.guess('赵本山')
('male', 0.9836229687547046)
>>> ngender.guess('宋丹丹')
('female', 0.9759486128949907)
开始实践想法
xls转csv
首先通过Excel将.xls
文件另存为 CSV 文件,因为Python自带CSV库,操作起来比操作xls文件简单(
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)
source大概长这样
转化为CSV后开始写代码
import csv
import ngender
new_csv = []
with open('list.csv','r',encoding='utf-8') as f:
reader = csv.reader(f)
next(reader)
for row in reader:
guess = ngender.guess(row[2])
row.append(guess[0])
row.append(round(guess[1]*100,3))
new_csv.append(row)
with open('test.csv','w',newline='')as f:
f_csv = csv.writer(f)
f_csv.writerows(new_csv)
遇到的两个坑
open
的编码格式
Excel转的CSV是UTF-8编码的,众所周知Python在中文Windows系统下的默认编码是GBK 所以open
的时候要加上encoding='utf-8'
- 保存时的默认新行
保存的结果每一行都会多一行,将newline
设置为空字符串就好了
效果
打开保存好的Excel,简单排序一下
完
后记
根据判断我们班有9个小姐姐,后面去问了下辅导员,实际上是八个,误差不大(
接下来可能没时间搞这些了,开学还要考英语,几个月没碰过全白给了,呜呜呜
This blog is under a CC BY-NC-SA 3.0 Unported License
Link to this article: https://hex.moe/p/f20b6b14/