其实,学习数据分析,excel可以完成绝大多数的工作,只是课程中@tiger是用python做的,而且最近自己也在学习编程,所以就挑战一下新东西,学学用python做作业,感谢@余欣 的教程,让我一个python小白也能上手做作业,这个作业是在这两篇教程的基础上完成的:
下面开始做作业
1. 下载数据集到本地
一共两个文件,weight.txt 和 AirPassengers.csv
weight.txt 中包含了一批体重数据,AirPassengers.csv中包含了日期和对应的乘客人数,两列数据。这次的任务就是求这两组数据的均值和方差,并画出直方图。
2. 建立Jupyter Notebook
把Jupyter Notebook安装好后,在终端内运行
jupyter notebook
浏览器会自动打开一个页面
这里可以看到电脑的本地文件,在其中找到放置上一步数据文件的文件夹,并在这个目录下,点击右上角的“New”,建立一个新的notebook
3. 导入数据,计算和输出
#在输入窗口下输入:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
weight_data = pd.read_table('weight.txt')
weight_data.shape
#按Shift+Enter,就会出现结果
#求均值
weight_data['weight'].mean()
50.7
#求方差
weight_data['weight'].var()
39.27594936708859
fig = plt.figure()
x = weight_data['weight']
ax = fig.add_subplot(111)
numBins = 20
ax.hist(x,numBins,color='blue',alpha=0.8,rwidth=0,9)
plt.grid(true)#
plt.title(u'weight')
plt.show()
#另一组数据,由于是csv格式,所以导入数据的代码略有不同
Passengers_data = pd.read_csv('AirPassengers.csv')
Passengers_data.shape
(144, 2)
Passengers_data['NumPassengers'].mean()
280.2986111111111
Passengers_data['NumPassengers'].var()
14391.917200854701
fig = plt.figure()
x = Passengers_data['NumPassengers']
ax = fig.add_subplot(111)
numBins = 20
ax.hist(x,numBins,color='blue',alpha=0.8,rwidth=0.9)
plt.title(u'Passengers')
plt.show()
4. 试着描述数据集的特征
这里第一个数据集是体重,大多数都在45-55之间,而有两个接近70,整体上,数据量不大,但是还是接近正态分布的。
第二个有点挠头,是从49年 到 60年每个月的乘客数量,这个数据如果用直方图展示,表达的信息就是乘客数量的分布。可以看出来,从大量集中在350-400之间,400以上的数量很少,而11年来,只有两个月的乘客数量超过了600。
对于这组数据,因为有时间维度,所以按照月份做一个叠加的柱状图,或者以时间为横轴,以人数为纵轴做一个曲线,似乎更能看出变化的规律所在。不过本次的作业是直方图,如何做柱状图和二维曲线,留给下一次再说吧。
网友评论