python数据分析三大神器基本操作1

python数据分析三大神器基本操作1 今天我带大家感受一下数据分析三大神器到底强大再哪里,这里我将用原生python代码和三大神器(numpy,pandas

python数据分析三大神器基本操作1

今天我带大家感受一下数据分析三大神器到底强大再哪里,这里我将用原生python代码和三大神器(numpy,pandas,matplotlib)来实现相同的功能做出比较,看看它到底独特在哪里。

实现这样一个小小的例子

用随机的方式生成5个学生3门课程的成绩 —> 嵌套列表

  1. 计算每个学生考试的平均成绩
  2. 计算每门课的最高分、最低分、标准差

首先,我们看一下用原生python代码写的代码

import randomnames=['张三','李四','王五','黑六','吴七']courses=['语文','数学','英语']scores = [[random.randrange(50,101) for _ in range(3)] for _ in range(5)]
print(scores)for i,name in enumerate(names):sum = 0for j,course in enumerate(courses):sum += scores[i][j]print(f'{name}的平均分{round(sum/len(courses),2)}')for i,course in enumerate(courses):temp=[]for j,name in enumerate(names):temp.append(scores[j][i])print(f'{course}最高分{max(temp)}')print(f'{course}最低分{min(temp)}')

大致效果是这样
在这里插入图片描述

真的很不爽,代码又臭又长

接下来,用了numpy来实现了同样的效果
在这里插入图片描述

这样心情是要好多了,但是,不知道你注意到没有,这样我们根本不知道算的分别是啥

好了,做这种事情还得pandas出马

import pandas as pddf = pd.DataFrame(data=scores,columns=courses,index=names)   # columns是可迭代对象
df

在这里插入图片描述

接下来算平均值

df['平均分'] = np.round(df.mean(axis=1),2)   
df

在这里插入图片描述

很直观对吧,这里最大值最小值等我就先不写了哈

不仅如此,还可以更直观

# 处理中文字体
import matplotlib.pyplot as plt
# 先执行下面代码
plt.rcParams['font.sans-serif']=['STFangsong']
plt.rcParams['axes.unicode_minus']=False
%config InlineBackend.figure_format = 'svg'  # 出矢量图
df.plot(kind='bar')  # bar代表柱状图                                      
plt.xticks(rotation=0)
plt.show()

看效果

在这里插入图片描述
想了解更多知识,欢迎移步到微信公众号
扫码或搜索数据分析者

在这里插入图片描述

好了,初步感受到pandas的强大了吗,那今天就先这样了,后续还有更新更多数据分析知识,有兴趣相互交流啊