文件中的姓氏统计

import pandas as pd
import matplotlib.pyplot as plt
import codecs                                     #处理中文utf-8编码
from matplotlib.font_manager import FontProperties#显示中文的需要
file = codecs.open("xm.csv","r","utf-8")          #打开utf-8编码的汉字

fx=['欧阳','太史','端木','上官','司马','东方','独孤','南宫','万俟','闻人','夏侯','诸葛','尉迟','公羊',
'赫连','澹台','皇甫','宗政','濮阳','公冶','太叔','申屠','公孙','慕容','仲孙','钟离','长孙','宇文',
'司徒','鲜于','司空','闾丘','子车','亓官','司寇','巫马','公西','颛孙','壤驷','公良','漆雕','乐正',
'宰父','谷梁','拓跋','夹谷','轩辕','令狐','段干','百里','呼延','东郭','南门','羊舌','微生','公户',
'公玉','公仪','梁丘','公仲','公上','公门','公山','公坚','左丘','公伯','西门','公祖','第五','公乘']

xing=[]
j=0
for line in file:
    if line[0:2] in fx:
        xing.append(line[0:2])#取复姓
    else:
        xing.append(line[0:1])#取单姓
    j=j+1
data={"xing":xing,"renshu":0} #构建字典
df=pd.DataFrame(data)         #构造DataFrame数据结构
s=df.groupby("xing").count()  #按列标题“xing”分组并统计个数,个数在列标题“renshu”下
s=s.sort_values("renshu",ascending=False)#按列标题“renshu”进行降序排列
ax=s[0:20].plot(kind="bar",rot=0)        #直接把字典中的index第0到19条画出来(样式为长条,横坐标文字旋转为0)

font=FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=12)   #设置中文字体,大小
for label in ax.get_xticklabels():#将每一个在x坐标中的中文字符的字体设置为对应的字体
    label.set_fontproperties(font)
plt.show()
print(s)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_32637157

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值