Python数据分析 |
您所在的位置:网站首页 › 百家姓图表 › Python数据分析 |
介绍
当我获得一份名单(本校4年的本科生录取姓名、学号、专业、录取中学等等) 打算利用这个名单,进行一些基础的有趣分析 基础整理引入库,并读写表格 import numpy as np import pandas as pd import os from collections import defaultdict import matplotlib.pyplot as plt plt.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()
对每个列表进行个数统计(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把多个可迭代元素内的项,一一对应打包成元组 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |