1、pandas簡介
pandas 是基於numpy 的一種工具,該工具是為了解決資料分析任務而建立的。pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函式和方法。你很快就會發現,它是使python成為強大而高效的資料分析環境的重要因素之一。
2、pandas的使用
在jupyter notebook或者pycharm等開發工具中匯入pandas包即可使用:
import pandas as pd3、pandas的series物件
pandas庫的series物件用來表示以為資料結構,跟陣列類似,但多了一些額外的功能,它的內部結構很簡單,由兩個相互關聯的陣列組成,其中主陣列用於存放資料(numpy任意型別資料)。主陣列的每個元素都有乙個與之相關聯的標籤,這些標籤儲存的另乙個叫做index的陣列中,如下表。
index
value
0peter
1smith
2joy
3.1、series物件的定義
1)、方式1:
s = pd.series([2,4,-7,9])
2)、方式2,包含索引:
s = pd.series([2,-4,-7,9],index=['a','b','c','d'])
3)、方式2:
a = np.array([1,2,3,4])
s= pd.series(a)
4)、包含nan空元素
s = pd.series([1,2,np.nan,14])
3.2、series元素讀取
#取所有元素
s.values
#取index索引
s.index
#取第2個元素
s[2]
#取索引為'c'的元素
s['c']
#去從0-2的元素(包含0,不包含2)
s[:2]
#取索引為'b'和'c'的元素
s[['b','c']]
3.3、series元素賦值
s[1]=0
s['c']=5
3.4、運算及數學函式
#所有元素除以2
s / 2
#通過numpy函式log對所有元素取對數
np.log(s)
3.5、篩選元素
根據條件篩選資料結構中的元素
s[s>8]
3.6、series的常用函式
#去重
s.unique()
#計算相同元素數量
s.value_counts()
#判斷給定的一列元素是否包含在資料結構中,返回布林值
s.isin([0,2])
#判斷元素是否為nan
s.isnull()
#判斷元素是否不為nan
s.notnull()
3.7、series與字典
#前面的元素為index,後面的元素為值
mydict =
s2 = pd.series(mydict)
3.8、series的運算
mydict =
colors = ['red','yellow','orange','blue','green']
s1 = pd.series(mydict,index =colors)
s1 + s2
4、pandas的dataframe物件
dataframe這種列表式資料結構跟工作表(最常見的是excel工作表)極為相似,其設計初衷是將series的使用場景由一維擴充套件到多維。dataframe由按一定順序排列的多列資料組成,各列資料型別可以有不同。
4.1 定義dataframe
data =
frame = pd.dataframe(data)
d1 = ,'white':,'blue':}
frame4 = pd.dataframe(d1)
color
object
price
0blue
ball
1.21
green
pen1.0
2yellow
pencil
0.63
red*****
0.94
white
mug1.7
4.2 dataframe讀取元素
#讀取列名
frame.columns
#讀取索引,返回rangeindex物件
frame.index
#讀取所有元素
frame.values
#讀取『price』一列
frame.price
#讀取索引為2的元素
frame.loc[2]
frame.iloc[2]
#讀取索引為2和4的元素
frame.loc[[2,4]]
frame.iloc[[2,4]]
#定義非預設索引dataframe
frame3 = pd.dataframe(data,index=['one','two','three','four','five'])
#讀取索引為'one'的元素
frame3.loc['one']
frame3.iloc[0]
#iloc的i為整數,不能通過另外定義的索引獲取元素,以下內容報錯
frame3.iloc['one']
#取1-3行,包含1不包含3
frame[1:3]
#取object列第3行元素,兩種方式:
frame['object'][3]
frame.object[3]
4.3 dataframe的賦值
#給index列賦值名稱id
frame.index.name = 'id'
#給表頭行賦值名稱為item
frame.columns.name = 'item'
#增加一列new,並全部賦值為12
frame['new'] = 12
#費frame列各元素賦值不同值
frame['new'] = [3.0,1.3,2.2,0.8,1.1]
#通過numpy的arange函式給series賦值
ser1 = pd.series(np.arange(5))
#將series的值賦給frame中的一列
frame['new'] = ser1
#給dataframe的某乙個元素賦值,將第2行,price列的元素賦值為2,以下兩個方式一樣有效:
frame.set_value(2,'price',2)
frame.at[2,'price']=22
4.4dataframe常用函式
#判斷值中是否包含了1.0或者pen,返回true或false
frame.isin([1.0,'pen'])
#判斷值中是否包含了1.0或者pen,返回元素值,或者nan
frame[frame.isin([1.0,'pen'])]
#刪除名稱為new的列
del frame['new']
#轉置frame2.t
#返回索引值,最小的元素
ins.idxmin()
#返回索引值,最大的元素
ins.idxmax()
#重複標籤的index,取列時將返回多行,如下將返回2行
serd = pd.series(range(6),index=['white','white','blue','green','green','yellow'])
serd['white']
#判斷index是否為unique序列(index為唯一值)
serd.index.is_unique
Task1 pandas基礎學習筆記
pandas應用的主要方向在於對資料的整理,pandas基於numpy,具有十分強大的資料整合功能,在生成series及dataframe時,都以二維列表的形式展現,下面主要介紹各種基本函式 為了方便,使用head 函式,使用該函式提取前5個資料,比較具有代表性 1.csv檔案 df pd.read...
pandas閱讀筆記 1
這幾天在閱讀python的pandas庫。現在還在閱讀第二章的內容,在第二章中又乙個例項,有乙個關於電影資料的資料集,然後,我們對它做一些簡單的分析,做個今天學習的總結。part 1讀取資料 首先使用的是pandas的read table函式,函式主要又以下幾個引數 filepath or buff...
pandas學習筆記
import numpy as np import pandas as pd obj2 pd.series 4,7,5,3 index d b a c obj2 out 99 d 4 b 7 a 5 c 3 dtype int64 a b pd.series a bout 102 a 1 b 2 c...