其實,學習數據分析,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。
對于這組數據,因為有時間維度,所以按照月份做一個疊加的柱狀圖,或者以時間為橫軸,以人數為縱軸做一個曲線,似乎更能看出變化的規律所在。不過本次的作業是直方圖,如何做柱狀圖和二維曲線,留給下一次再說吧。