初到中4班,我的首要人物就是记忆幼儿名字。看了一眼点名册,明显感到“王”姓很多。于是总是逮住孩子问:“你叫什么名字?”
“我叫XXX,”
“他是小西瓜”
“我有五个名字!
“我叫小米”
……
于是我想用去年中6班时用过的一个代码,测算一下孩子的“姓“”“名”中的重复频率
了解一下多少孩子是3个名字,多少孩子是2个名字
'''
目标:中4班幼儿姓氏与名字的出现频率
作者:阿夏
时间:2024年1月19日'''
from pandas import DataFrame, Series
import pandas as pd
import numpy as np
import xlrd
# 读取列
worksheet = xlrd.open_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\中4班分析\中4学生名单.xlsx')
sheet_names= worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
sheet = worksheet.sheet_by_name(sheet_name)
rows = sheet.nrows # 获取行数
cols = sheet.ncols # 获取列数,尽管没用到
all_content = []
cols = sheet.col_values(1) # 获取第二列内容, 数据格式为此数据的原有格式(原:字符串,读取:字符串; 原:浮点数, 读取:浮点数)
print(cols)
print(cols[1:]) # 不要第1行的标题的文字
print(type(cols[1])) #查看数据类型
# 名字的长度 3字长度的名字 2字长度的名字
three = []
two=[]
for x in cols[1:]: # 第1行的教职工姓名不要,从1(第二行开始计数)
if len(x)==3: # 如果名字等于3个字
three.append(x)
if len(x)==2: # 如果名字等于2个字
two.append(x)
print(three)
print('3个名字的孩子',len(three),'人\n')
print(two)
print('2个名字的孩子',len(two),'人\n')
# print(b) ["张", "李", "周", "张", "张", "李”]
'''
目标:中4班幼儿姓氏与名字的出现频率
作者:阿夏
时间:2024年1月19日'''
from pandas import DataFrame, Series
import pandas as pd
import numpy as np
import xlrd
# 读取列
worksheet = xlrd.open_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\中4班分析\中4学生名单.xlsx')
sheet_names= worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
sheet = worksheet.sheet_by_name(sheet_name)
rows = sheet.nrows # 获取行数
cols = sheet.ncols # 获取列数,尽管没用到
all_content = []
cols = sheet.col_values(1) # 获取第二列内容, 数据格式为此数据的原有格式(原:字符串,读取:字符串; 原:浮点数, 读取:浮点数)
print(cols)
print(cols[1:]) # 不要第1行的标题的文字
print(type(cols[1])) #查看数据类型
# name_list = ["张三", "李四", "周瑜", "张三", "张三", "李四", "王五", "张飞", "张飞", "周瑜"]
#提取第一个姓(目前没有复姓,所以都取第一个姓)
b = []
for i in cols[1:]: # 第1行的教职工姓名不要,从1(第二行开始计数)
a=i[0]
b.append(a)
# print(b) ["张", "李", "周", "张", "张", "李”]
name_dict = {}
for name in b:
# 取出字典中的所有keys值
key_list = name_dict.keys()
# key_list = name_dict[0]
# print(key_list)
if name in key_list:
name_dict[name] += 1
else:
name_dict[name] = 1
# # 根据字典中的value值进行倒序排序
name_dict = sorted(name_dict.items(), key=lambda item:item[1], reverse=True)
print(name_dict )
d=[]
for c in range(0,len(name_dict)):
aa=name_dict[c][0]
bb=name_dict[c][1]
print(aa,bb)
'''
目标:中4班幼儿姓氏与名字的出现频率
作者:阿夏
时间:2024年1月19日'''
from pandas import DataFrame, Series
import pandas as pd
import numpy as np
import xlrd
# 读取列
worksheet = xlrd.open_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\中4班分析\中4学生名单.xlsx')
sheet_names= worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
sheet = worksheet.sheet_by_name(sheet_name)
rows = sheet.nrows # 获取行数
cols = sheet.ncols # 获取列数,尽管没用到
all_content = []
cols = sheet.col_values(1) # 获取第二列内容, 数据格式为此数据的原有格式(原:字符串,读取:字符串; 原:浮点数, 读取:浮点数)
print(cols)
print(cols[1:]) # 不要第1行的标题的文字
print(type(cols[1])) #查看数据类型
print('--第3类:名字重复(不考虑声调)-------')
# name_list = ["张三", "李四", "周瑜", "张三", "张三", "李四", "王五", "张飞", "张飞", "周瑜"]
#提取第一个姓(目前没有复姓,所以都取第一个姓)
b1 = []
for i1 in cols[1:]: # 第1行的教职工姓名不要,从1(第二行开始计数)
for i2 in i1[1:]:
b1.append(i2)
# print(b) ["张", "李", "周", "张", "张", "李”]
name_dict1 = {}
for name1 in b1:
# 取出字典中的所有keys值
key_list1 = name_dict1.keys()
# key_list = name_dict[0]
# print(key_list)
if name1 in key_list1:
name_dict1[name1] += 1
else:
name_dict1[name1] = 1
# # 根据字典中的value值进行倒序排序
name_dict1 = sorted(name_dict1.items(), key=lambda item:item[1], reverse=True)
print(name_dict )
d1=[]
for c1 in range(0,len(name_dict1)):
aa1=name_dict1[c1][0]
bb1=name_dict1[c1][1]
print(aa1,bb1)
除了汉字的辨识,由于幼儿不识字,所以他们会将同音字一组。
【办公类-19-01-03】办公中的思考——Python,统计孩子名字的同音字(拼音)_python寻找全员姓名拼音的共同点-CSDN博客文章浏览阅读574次。【办公类-19-01-03】办公中的思考——Python,统计孩子名字的同音字_python寻找全员姓名拼音的共同点https://blog.csdn.net/reasonsummer/article/details/129627144所以我试试将姓氏转为拼音,分别设计“考虑声调“和“不考虑声调”两种可能性。
'''
目标:中4班幼儿姓氏与名字的出现频率(拼音声调版)
作者:阿夏
时间:2024年1月19日'''
from pandas import DataFrame, Series
import pandas as pd
import numpy as np
import xlrd
from xpinyin import Pinyin
# 读取姓氏或名字(考虑声调、不考虑声调)
worksheet = xlrd.open_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\中4班分析\中4学生名单.xlsx')
sheet_names= worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
sheet = worksheet.sheet_by_name(sheet_name)
rows = sheet.nrows # 获取行数
cols = sheet.ncols # 获取列数,尽管没用到
all_content = []
cols = sheet.col_values(1) # 获取第二列内容, 数据格式为此数据的原有格式(原:字符串,读取:字符串; 原:浮点数, 读取:浮点数)
print(cols[1:])
# ['张三', '李四', '王五刘', '朝气吧'……]
print(type(cols[1:])) #查看数据类型 <class 'list'>
listall=[]
for x in cols[1:]:
for y in x[0]:
p = Pinyin()
result1 = p.get_pinyin('{}'.format(y))
print(result1)
listall.append(result1)
print(listall)
# ['zhang', 'san', 'li', 'si', 'wang'……]
name_dict = {}
for name in listall:
# 取出字典中的所有keys值
key_list = name_dict.keys()
# key_list = name_dict[0]
# print(key_list)
if name in key_list:
name_dict[name] += 1
else:
name_dict[name] = 1
# # 根据字典中的value值进行倒序排序
name_dict = sorted(name_dict.items(), key=lambda item:item[1], reverse=True)
print(name_dict )
d=[]
for c in range(0,len(name_dict)):
aa=name_dict[c][0]
bb=name_dict[c][1]
print(aa,bb)
'''
目标:中4班幼儿姓氏与名字的出现频率(拼音声调版)
作者:阿夏
时间:2024年1月19日'''
from pandas import DataFrame, Series
import pandas as pd
import numpy as np
import xlrd
from xpinyin import Pinyin
# 读取姓氏或名字(考虑声调、不考虑声调)
worksheet = xlrd.open_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\中4班分析\中4学生名单.xlsx')
sheet_names= worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
sheet = worksheet.sheet_by_name(sheet_name)
rows = sheet.nrows # 获取行数
cols = sheet.ncols # 获取列数,尽管没用到
all_content = []
cols = sheet.col_values(1) # 获取第二列内容, 数据格式为此数据的原有格式(原:字符串,读取:字符串; 原:浮点数, 读取:浮点数)
print(cols[1:])
# ['张三', '李四', '王五刘', '朝气吧'……]
print(type(cols[1:])) #查看数据类型 <class 'list'>
listall=[]
for x in cols[1:]:
for y in x[1:]:
p = Pinyin()
result1 = p.get_pinyin('{}'.format(y))
print(result1)
listall.append(result1)
print(listall)
# ['zhang', 'san', 'li', 'si', 'wang'……]
name_dict = {}
for name in listall:
# 取出字典中的所有keys值
key_list = name_dict.keys()
# key_list = name_dict[0]
# print(key_list)
if name in key_list:
name_dict[name] += 1
else:
name_dict[name] = 1
# # 根据字典中的value值进行倒序排序
name_dict = sorted(name_dict.items(), key=lambda item:item[1], reverse=True)
print(name_dict )
d=[]
for c in range(0,len(name_dict)):
aa=name_dict[c][0]
bb=name_dict[c][1]
print(aa,bb)
from pandas import DataFrame, Series
import pandas as pd
import numpy as np
import xlrd
from xpinyin import Pinyin
# 读取列
worksheet = xlrd.open_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\中4班分析\中4学生名单.xlsx')
sheet_names= worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
sheet = worksheet.sheet_by_name(sheet_name)
rows = sheet.nrows # 获取行数
cols = sheet.ncols # 获取列数,尽管没用到
all_content = []
cols = sheet.col_values(1) # 获取第二列内容, 数据格式为此数据的原有格式(原:字符串,读取:字符串; 原:浮点数, 读取:浮点数)
print(cols[1:])
# ['张三', '李四', '王五刘', '朝气吧'……]
print(type(cols[1:])) #查看数据类型 <class 'list'>
listall=[]
for x in cols[1:]:
for y in x[0]:
p = Pinyin()
# result1 = p.get_pinyin('{}'.format(y))
result1 = p.get_pinyin('{}'.format(y), tone_marks='marks')
print(result1)
listall.append(result1)
print(listall)
# ['zhang', 'san', 'li', 'si', 'wang'……]
# # 'ye-fu-tian'
# # result2 = p.get_pinyin('叶伏天', tone_marks='marks')
# # 'yè-fú-tiān'
name_dict = {}
for name in listall:
# 取出字典中的所有keys值
key_list = name_dict.keys()
# key_list = name_dict[0]
# print(key_list)
if name in key_list:
name_dict[name] += 1
else:
name_dict[name] = 1
# # 根据字典中的value值进行倒序排序
name_dict = sorted(name_dict.items(), key=lambda item:item[1], reverse=True)
print(name_dict )
d=[]
for c in range(0,len(name_dict)):
aa=name_dict[c][0]
bb=name_dict[c][1]
print(aa,bb)
# zhang 1
from pandas import DataFrame, Series
import pandas as pd
import numpy as np
import xlrd
from xpinyin import Pinyin
# 读取列
worksheet = xlrd.open_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\中4班分析\中4学生名单.xlsx')
sheet_names= worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
sheet = worksheet.sheet_by_name(sheet_name)
rows = sheet.nrows # 获取行数
cols = sheet.ncols # 获取列数,尽管没用到
all_content = []
cols = sheet.col_values(1) # 获取第二列内容, 数据格式为此数据的原有格式(原:字符串,读取:字符串; 原:浮点数, 读取:浮点数)
print(cols[1:])
# ['张三', '李四', '王五刘', '朝气吧'……]
print(type(cols[1:])) #查看数据类型 <class 'list'>
listall=[]
for x in cols[1:]:
for y in x[1:]:
p = Pinyin()
# result1 = p.get_pinyin('{}'.format(y))
result1 = p.get_pinyin('{}'.format(y), tone_marks='marks')
print(result1)
listall.append(result1)
print(listall)
# ['zhang', 'san', 'li', 'si', 'wang'……]
# # 'ye-fu-tian'
# # result2 = p.get_pinyin('叶伏天', tone_marks='marks')
# # 'yè-fú-tiān'
name_dict = {}
for name in listall:
# 取出字典中的所有keys值
key_list = name_dict.keys()
# key_list = name_dict[0]
# print(key_list)
if name in key_list:
name_dict[name] += 1
else:
name_dict[name] = 1
# # 根据字典中的value值进行倒序排序
name_dict = sorted(name_dict.items(), key=lambda item:item[1], reverse=True)
print(name_dict )
d=[]
for c in range(0,len(name_dict)):
aa=name_dict[c][0]
bb=name_dict[c][1]
print(aa,bb)
# zhang 1
# san 1
# li 1
# si 1