標籤:

利用numpy和pandas進行一維和二維數據分析。

本文要點:numpy、pandas和matplolib是數據分析領域最常見的三個包。其中numpy是python中應用於數學計算的模塊,pandas是基於numpy的數據分析工具。這篇文章介紹了numpy和pandas的基礎知識。

1.一維數據分析

首先導入numpy和pandas

#導入numpy包import numpy as np#導入pandas包import pandas as pd

Numpy

numpy的一維數據結構叫array。

#定義數據a = np.array([1,2,3,4,5])#查詢a[0]#切片訪問:獲取指定序號範圍的元素a[1:3]#查看數據類型dtypea.dtype#平均值a.mean()#標準差a.std()#向量化運行:乘以標量b=np.array([1,2,3])c=b*4

Pandas

pandas的一維數據結構是series,series是建立在numpy基礎上,series有索引的功能。

定義數據:

stockS=pd.Series([54.74,190.9,173.14,1050.3,181.86,1139.49], index=[騰訊, 阿里巴巴, 蘋果, 谷歌, Facebook, 亞馬遜])

輸出:

stockS

獲取描述統計信息:

stockS.describe()

iloc屬性用於根據位置獲取值:

stockS.iloc[0] #獲取數集中第一個值

loc屬性用於根據索引獲取值:

stockS.loc[騰訊]

向量化運算:

s1=pd.Series([1,2,3,4],index=[a,b,c,d])s2=pd.Series([10,20,30,40],index=[a,b,e,f])s3=s1+s2

刪除缺失值:

s3.dropna()

將缺失值進行補充,用0來填充:

s3=s1.add(s2,fill_value=0)

2.二維數據分析

導入包

import numpy as npimport pandas as pd

Numpy

#定義二維數組a=np.array([[1,2,3,4],[5,6,7,8], [9,10,11,12]])#獲取行號是0,列號是2的元素a[0,2]

3

#獲取第1列a[:,0]

array([1, 5, 9])

#獲取第1行a[0,:]

array([1, 2, 3, 4])

#如果沒有指定數軸參數,會計算整個數組的平均值a.mean()

6.5

#按軸計算:axis=1按行計算,axis=0按列計算a.mean(axis=1)

array([ 2.5, 6.5, 10.5])

Pandas

首先定義字典:

salesDict={ 購葯時間:[2018-01-01 星期五,2018-01-02 星期六,2018-01-06 星期三], 社保卡號:[001616528,001616528,0012602828], 商品編碼:[236701,236701,236701], 商品名稱:[強力VC銀翹片,清熱解毒口服液,感康], 銷售數量:[6,1,2], 應收金額:[82.8,28,16.8], 實收金額:[69,24.64,15]}#導入有序字典from collections import OrderedDict#定義一個有序字典salesOrderDict=OrderedDict(salesDict)#定義數據框:傳入字典,列名salesDf=pd.DataFrame(salesOrderDict)

有序字典輸出結果:

數據框:

#平均值:是按每列來求平均值salesDf.mean()

查詢數據:iloc屬性用於根據位置獲取值

#查詢第1行第2列的元素salesDf.iloc[0,1]

001616528

#獲取第1行,:代表所有列salesDf.iloc[0,:]

#獲取第1列,:代表所有行salesDf.iloc[:,0]

loc屬性用於根據索引獲取值

salesDf.loc[0,商品編碼]

236701

salesDf.loc[0,:]

salesDf[商品名稱]

切片功能,通過列表來選擇某幾列的數據

salesDf[[商品名稱,銷售數量]]

通過切片功能,獲取指定範圍的列

salesDf.loc[:,購葯時間:銷售數量]

數據框複雜查詢:條件判斷

#第1步:構建查詢條件querySer=salesDf.loc[:,銷售數量]>1type(querySer)

pandas.core.series.Series

querySer

salesDf.loc[querySer,:]

查看數據集描述統計信息

讀取excel數據

fileNameStr=J:da數據分析入門(Python)第4關數據分析的基本過程/朝陽醫院2018年銷售數據.xlsxxls = pd.ExcelFile(fileNameStr)salesDf = xls.parse(Sheet1)

列印出前3行,以確保數據運行正常

salesDf.head(3)

#有多少行,多少列salesDf.shape

(6578, 7)

#查看某一列的數據類型salesDf.loc[:,銷售數量].dtype

dtype(float64)

#查看所有列的數據類型salesDf.dtypes

購葯時間 object

社保卡號 float64

商品編碼 float64

商品名稱 object

銷售數量 float64

應收金額 float64

實收金額 float64

dtype: object

#查看salesDf的類型,是數據框type(salesDf)

pandas.core.frame.DataFrame

#查看每一列的統計數值salesDf.describe()

推薦閱讀:

職位速遞:知名互聯網金融公司高級數據分析工程師(年薪30~50W)
泰坦尼克號倖存者特徵分析
【數據分析】中文筆記翻譯計劃順利結束
探索電影大數據
數據分析的三板斧

TAG:數據分析 |