3.數據挖掘——房價項目預測(三)Pandas學習

目錄

模塊的導入

Pandas數據類型

Series

DataFrame

Panel

Pandas的運算函數

Pandas的排序

Pandas的協方差cov()和標準係數corr()


pandas 是基於NumPy 的一種工具,該工具是爲了解決數據分析任務而創建的。Pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。pandas提供了大量能使我們快速便捷地處理數據的函數和方法。你很快就會發現,它是使Python成爲強大而高效的數據分析環境的重要因素之一。除了用於數據挖掘和數據分析,同時也提供數據清洗功能。

pandas存在的意義就是爲用戶提供更整齊更方便的數據體驗

模塊的導入

前面說到,Pandas是基於NumPy的一種工具,所以我們在使用Pandas的同時也要導入NumPy庫。

import numpy as np
import pandas as pd

Pandas數據類型

  • Series:它是一種類似於一維數組的對象,是由一組數據(各種NumPy數據類型)以及一組與之相關的數據標籤(即索引)組成。僅由一組數據也可產生簡單的Series對象。
  • DataFrame:是Pandas中的一個表格型的數據結構,包含有一組有序的列,每列可以是不同的值類型(數值、字符串、布爾型等),DataFrame即有行索引也有列索引,可以被看做是由Series組成的字典。
  • Panel:面板是具有異構數據的三維數據結構。在圖形表示中很難表示面板。但是一個面板可以說明爲DataFrame的容器。

Series

Series翻譯過來叫做:系列 系列是具有均勻數據的一維數組結構。

Series關鍵點: 均勻數據 、尺寸大小不變、 數據的值可變

創建一個Series:

通過pandas.Series()函數創建系列,參數是一個列表:

s = pd.Series(np.random.randn(4))
print(s)
print(type(s))

 

Series 基本屬性和方法:

屬性或方法 描述
axes 返回行軸標籤列表
dtype 返回對象的數據類型
empty 如果系列爲空,則返回True
ndim 返回底層數據的維數,默認定義爲:1
size 返回基礎數據中的元素數
values 將系列作爲ndarray返回
head() 返回前n行
tail() 返回最後n行
s = pd.Series(np.random.randn(4))
print(s)
print(s.axes)
print(s.dtype)
print(s.empty)
print(s.size)
print(s.ndim)
print(s.values)
print(type(s.values))

 

 

 

s = pd.Series(np.random.randint(1,15,6))
print(s)
print("\n")
print(s.head(3))
print("\n")
print(s.tail(3))

DataFrame

數據幀(DataFrame)是二維數據結構,即數據以行和列的表格方式排列。 DataFrame是pandas使用最多,用途最廣的類型 .

數據幀(DataFrame)的功能特點:

  • 潛在的列是不同的類型
  • 大小可變
  • 標記軸(行和列)
  • 可以對行和列執行算術運算

創建一個DataFrame :

通過pandas.DataFrame()創建:

df = pd.DataFrame(np.random.randint(1,30,12).reshape(3,4))
print(df)

Dataframe的基本屬性和方法:

較Series系列多了一個轉置屬性和一個形狀屬性:

屬性或方法 描述
axes 返回行軸標籤列表
dtype 返回對象的數據類型
empty 如果系列爲空,則返回True
ndim 返回底層數據的維數,默認定義爲:1
size 返回基礎數據中的元素數
values 將系列作爲ndarray返回
head() 返回前n行
tail() 返回最後n行
T 轉置行和列
shape 返回表示DateFrame的維度的元組

 

df = pd.DataFrame(np.random.randint(1,30,12).reshape(3,4))
print(df)
print(df.T)
print(df.shape)

Panel

面板(Panel)是3D容器的數據。面板數據一詞來源於計量經濟學。

3軸(axis)這個名稱旨在給出描述涉及面板數據的操作的一些語義。它們是:

  • items - axis 0,每個項目對應於內部包含的數據幀(DataFrame)。
  • major_axis -axis 1,它是每個數據幀(DataFrame)的索引(行)。
  • minor_axis - axis 2,它是每個數據幀(DataFrame)的列。

Panel創建與基本屬性:

可以使用以下構造函數創建面板:

pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)

參數說明:

參數 描述
data 數據採取各種形式,如:ndarray,series,map,lists,dict,constant和另一個數據幀(DataFrame)
items axis=0
major_axis axis=1
minor_axis axis=2
dtype 每列的數據類型
copy 複製數據,默認爲:false

Pandas的運算函數

函數 描述
count() 非空觀測數量
sum() 所有值之和
mean() 所有值的平均值
median() 所有值的中位數
mode() 值的模值
std() 值的標準偏差
min() 所有值中的最小值
max() 所有值中的最大值
abs() 絕對值
prod() 數組元素的乘積
cumsum() 累計綜總和
cumprod() 累計乘積

 創建一個實例:

d={'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack','Lee','David','Gasper','Betina','Andres']),
'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])}
df = pd.DataFrame(d)
print(df)

 

print(df.Age.sum())
print(df.Age.mean())
print(df.Rating.median())
print(df.Age.std())
print(df.Rating.max())
print(df.Rating.min())

Pandas的排序

Pandas的排序分爲兩種:一種是按標籤,一張是按實際值。

創建一個演示用的例子:

arr = np.random.randint(1,10,20).reshape(10,2)
unsorted_df=pd.DataFrame(arr,index=[1,4,6,2,3,5,9,8,0,7],columns=['col2','col1'])
print(unsorted_df)

按標籤進行排序:

使用sort_index()方法,通過傳遞axis參數和排序順序,可以對DataFrame進行排序。 默認情況下,按照升序對行標籤進行排序。

 

sorted_df = unsorted_df.sort_index()
print(sorted_df)

按實際值排序:

像索引排序一樣,sort_values()是按值排序的方法。它接受一個by參數,它將使用要與其排序值的DataFrame的列名稱。

 

sorted_df = unsorted_df.sort_values(by='col1')
print(sorted_df)

Pandas的協方差cov()和標準係數corr()

frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print(frame)
print ("\n a,b的協方差",frame['a'].cov(frame['b']))
print (frame.cov())

 相關性顯示了任何兩個數值(系列)之間的線性關係。

frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print(frame)
print (frame['a'].corr(frame['b']))
print (frame.corr())

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章