介绍

当我获得一份名单(本校4年的本科生录取姓名、学号、专业、录取中学等等)
打算利用这个名单,进行一些基础的有趣分析

基础整理

引入库,并读写表格

import numpy as np
import pandas as pd
import os
from collections import defaultdict
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号path = "E:/code_interesting/name_of_school/"
os.chdir(path)
s1 = pd.read_excel("2014-2019 中学录取学生数据.xlsx")
s1.head()


遍历表格,将每个学生的姓氏、名字、学校分别放入表格
itertuples(): 将DataFrame迭代为元组
getattr(行, 列名):返回对应值

last_name = []  # 存放姓氏
first_name = []  # 存放名
school_name = []   # 存放学校
for row in s1.itertuples():   # 遍历dataframe中每一行name = getattr(row, "姓名").strip()school = getattr(row, "zxmc")if not isinstance(school, str):school = "无"else: school = school.strip()# print(school)school_name.append(school)
#     if "翰文" in name:
#         print(name)if "·" in name:    # 少数民族姓名中间为·name1, name2 = name.split("·")last_name.append(name1)first_name.append(name2)elif len(name) == 4:    # 四个字名字,前两个复姓last_name.append(name[:2])first_name.append(name[2:])else:last_name.append(name[:1])first_name.append(name[1:])
first_c_name = []
for s in first_name:   # 将名列表中每个名字拆分成单字ss = list(s)first_c_name += ss
print(len(first_c_name))
# print(first_c_name[0:100])

对每个列表进行个数统计(defaultdict建立默认类型的字典)
其中,对字典排序:sorted(dict.items(), key=lambda x:x[1])其中1即为按字典值排序,0为按字典项排序

last_num = defaultdict(int)   # 构建字典,每个姓氏有多少人,下同
first_num = defaultdict(int)
first_c_num = defaultdict(int)
school_num = defaultdict(int)
# print(first_name)for i in range(len(first_name)):# print(i)# print(last_name[i])last_num[last_name[i]] += 1 first_num[first_name[i]] += 1 school_num[school_name[i]] += 1
for i in range(len(first_c_name)):first_c_num[first_c_name[i]] += 1
last_sort = sorted(last_num.items(), key=lambda x:x[1], reverse=True)   # 对字典进行排序
first_sort = sorted(first_num.items(), key=lambda x:x[1], reverse=True)
first_c_sort = sorted(first_c_num.items(), key=lambda x:x[1], reverse=True)
school_sort = sorted(school_num.items(), key=lambda x:x[1], reverse=True)print(len(school_sort))first_2c_sort = []   # 复名列表
for t in first_sort:if len(t[0]) == 2: first_2c_sort.append(t)

单字图表

# 单字图标
total_c = len(first_c_sort)   # 总长度
head_num = 100
x = np.array(range(head_num))
y_c = []
xlabel_c = []
for tupe in first_c_sort[0:head_num]:y_c.append(tupe[1])xlabel_c.append(tupe[0])print(y_c)
print(x)
plt.figure(figsize=(40, 5), dpi=150)
plt.bar(x, y_c)
plt.xticks(x, xlabel_c)
for a, b in zip(x, y_c):plt.text(a-0.5, b+1, b)
plt.savefig("c_100.jpg")
plt.show()

plt.figure中,figsize指定了图表的尺寸(因为x太多,故为长条状),dpi指定了像素值
plt.bar绘制直方图(条状图)
plt.xticks第一个值为50个0开始的数,第二个值为50个对应的x坐标名称
plt.text为在指定位置添加文字
zip把多个可迭代元素内的项,一一对应打包成元组

复名分析

head_num = 100
print(first_2c_sort[0:20])
x = np.array(range(head_num))
y_c = []
xlabel_c = []
for tupe in first_2c_sort[0:head_num]:y_c.append(tupe[1])xlabel_c.append(tupe[0])plt.figure(figsize=(40, 5), dpi=150)
plt.bar(x, y_c)
plt.xticks(x, xlabel_c)
plt.xticks(rotation=45)
for a, b in zip(x, y_c):plt.text(a-0.5, b+1, b)
plt.savefig("2c_100.jpg")
plt.show()

姓氏分析

total = len(last_name)
head_num = 100
print(last_sort[0:20])
x = np.array(range(head_num))
y_c = []
xlabel_c = []
for tupe in last_sort[0:head_num]:y_c.append(tupe[1])xlabel_c.append(tupe[0])plt.figure(figsize=(40, 5), dpi=150)
plt.bar(x, y_c)
plt.xticks(x, xlabel_c)
# plt.xticks(rotation=45)
for a, b in zip(x, y_c):plt.text(a-0.5, b+1, b)plt.text(a-0.5, b+100, "{:.2f}%".format((b/total)*100))
plt.savefig("last_100.jpg")
plt.show()

学校分析

head_num = 50
x = np.array(range(head_num))
y_c = []
xlabel_c = []
for tupe in school_sort[0:head_num]:y_c.append(tupe[1])xlabel_c.append(tupe[0])plt.figure(figsize=(40, 5), dpi=150)
plt.bar(x, y_c)
plt.xticks(x, xlabel_c)
plt.xticks(rotation=20)
for a, b in zip(x, y_c):plt.text(a-0.3, b+1, b) plt.text(a-0.3, b+15, "{:.2f}%".format((b/total)*100))
plt.savefig("school_50.jpg")
plt.show()

Python数据分析——分析名单表格的姓氏、姓名等相关推荐

  1. python数据分析(分析文本数据和社交媒体)

    前言:推荐下我自己建的人工智能Python学习群:[809160367],群里有我整理的一份关于pytorch.python基础,图像处理opencv\自然语言处理.机器学习.数学基础等资源库,想学习 ...

  2. python数据分析分析(8G)学习视频免费分享

    相关数据下载,请关注公众号"一行数据",回复"python可视化"免费获得 很多人学python是从数据分析开始的,一方面进行可视化绘图很容易产生成就感,另一方 ...

  3. Python数据分析 | 分析微信公众号历史发文信息

    文章目录 一.前言 二.获取历史文章信息 三.提取和查看数据 四.数据可视化 原文链接:https://yetingyun.blog.csdn.net/article/details/11228825 ...

  4. 跟小白学Python数据分析——绘制仪表盘

    本文继续采用PyEcharts v1.x版本进行绘制仪表盘. 注:PyEcharts分为 v0.5.x 和 v1.x 两个大版本,v0.5.x 和 v1.x 间不兼容,v0.5.x是基于Python2 ...

  5. 跟小白学Python数据分析——绘制水球图

    本文继续采用PyEcharts v1.x版本进行绘制水球图. 注:PyEcharts分为 v0.5.x 和 v1.x 两个大版本,v0.5.x 和 v1.x 间不兼容,v0.5.x是基于Python2 ...

  6. 【数据分析入门】python数据分析全过程梳理与代码实现

    文章目录 数据分析 数据获取 探索分析与可视化 预处理理论 分析建模 评估模型 数据分析 数据获取 [数据分析入门]python数据分析之数据获取方法 探索分析与可视化 [数据分析入门]python数 ...

  7. Python数据分析初学之分析表格

    文章目录 Python数据分析初学之分析表格 任务要求 代码实现 Python数据分析初学之分析表格 任务要求 1)使用 pandas 读取文件 data.csv 中的数据 ,创建 DataFrame ...

  8. Python数据分析入门笔记10——简单案例练习(学生信息分析)

    系列文章目录 Python数据分析入门笔记1--学习前的准备 Python数据分析入门笔记2--pandas数据读取 Python数据分析入门笔记3--数据预处理之缺失值 Python数据分析入门笔记 ...

  9. 《Python数据分析与挖掘实战》一3.1 数据质量分析

    本节书摘来自华章出版社<Python数据分析与挖掘实战>一书中的第3章,第3.1节,作者 张良均 王路 谭立云 苏剑林,更多章节内容可以访问云栖社区"华章计算机"公众号 ...

最新文章

  1. iOS百度地图的使用
  2. 循序渐进——NAnt构建实例
  3. Linux下如何抓取串口码流,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系...
  4. 05_SpringCloud整合声明式HTTP客户端-Feign
  5. java lpad oracle_Oracal的Lpad函数
  6. 视频课程-1小时上手 Spring Boot 及 达梦数据库 做数据展示后端
  7. ffmpeg实战教程(二)用SDL播放YUV,并结合ffmpeg实现简易播放器
  8. 技巧:如何从苹果Mac跟踪设备上所有电池的电量?
  9. 汇编实验五 编写、调试具有多个段的程序
  10. 爱的十个秘密--7.舍弃的力量
  11. 最简洁的秒杀 阿里月饼 js脚本
  12. android圆形图片裁剪demo以及实现
  13. Contextual Diversity for Active Learning阅读笔记
  14. 禁止QQ迷你首页运行【转】
  15. 翟菜花:当防沉迷遇到职业电竞,我们能怎么办?
  16. 2022最新whatsapp接收不到验证码解决方法
  17. 华为hcie中QOS 流量整形 双速率的概念-ielab实验室
  18. 虚拟主机商如何搭建下一代虚拟主机
  19. C++用snap7库对PLC数据块进行读写
  20. Windows10上安装Visio 2019与Office 2019

热门文章

  1. SmallestWidth一种非常好用的Android屏幕适配
  2. 使用JLINK给GD32下载程序
  3. 经典算法 及其 API
  4. IDEA maven install 报错:程序包不存在
  5. uniapp+vue微信小程序java python物资物品租赁系统php
  6. Paper Reading - 基础系列 - Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour
  7. Kindle读书笔记——第一个月2017.01.22-02.21
  8. DFS 图遍历路径优化分析
  9. 仿网易云音乐切换主题
  10. python youtube字幕_用Python将单个Webvtt格式字幕转成Srt格式字幕