一.数据分析三大神器
1.NumPy - Numerical Python - 提供了名为ndarray的数据类型,基于该类型我们可以实现对数据的存储和批量处理。
2.Pandas - Panel Data Set - 提供了Series和
DataFrame两种核心数据类型,专门用于处理一维和二维的数据,对数据分析常用方法进行了封装。
3.Matplotlib - 封装了各种常用的统计图表,pandas以及其他很多库绘图的功能,底层就是matplotlib提供的支持。
导入三个分析工具库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
二、初级指令体验
1.初始数据建立
names = ('李元芳', '白起', '孙悟空', '达摩', '孙尚香')
courses = ('语文', '数学', '英语')
scores = [91, 78, 72], [68, 70, 83], [82, 76, 97], [89, 84, 89], [85, 80, 94]]
# 先写三个函数,后面使用
def mean(nums: list) -> float:
"""计算均值"""
return sum(nums) / len(nums)
def var(nums: list) -> float:
"""计算方差"""
avg = mean(nums)
return mean([(num - avg) ** 2 for num in nums])
def std(nums: list) -> float:
"""计算标准差"""
return var(nums) ** 0.5
2.关于axis使用:
np.round(np.mean(scores, axis=1), 1)
np.max(scores, axis=0)
3.尝试建图
# 创建DataFrame对象
# data - 二维的数据,columns - 列索引,index - 行索引
df = pd.DataFrame(data=scores, columns=courses, index=names)
df
4.插入一行
# 给DataFrame对象添加一个列保存每个学生的平均分
df['平均分'] = np.round(df.mean(axis=1), 1)
df
5.写入excel文件
df.to_excel('成绩.xlsx')
6.排序
根据平均分排序
df.sort_values(by='平均分', ascending=False)
df.sort_values(by='平均分', ascending=False).drop(columns='平均分')
7.一个简易图
df.plot(kind='bar')
8.一些指令
# 配置matplotlib使用支持中文的字体
plt.rcParams['font.sans-serif'] = ['SimHei', ]
# 让负号正常显示
plt.rcParams['axes.unicode_minus'] = False
# 使用魔法指令配置在独立窗口显示图表
# 需要安装三方库PyQt5来支持该魔法指令
# %pip install PyQt5
%matplotlib qt
# 使用魔法指令配置在浏览器内嵌显示图表
%matplotlib inline
# 使用魔法指令配置生成矢量图
%config InlineBackend.figure_format = 'svg'
# 图例位置控制
plt.legend(loc='lower right')
# 提出操作横轴的刻度
plt.xticks(rotation=0)
# 把图片显示
plt.show()
9.图片保存
注意要在plt.show前保存,不然没有保存的东西
plt.savefig('aaa.png')