Pandas學習筆記(1)

2021-09-11 19:10:04 字數 4293 閱讀 3719

1、pandas簡介

pandas 是基於numpy 的一種工具,該工具是為了解決資料分析任務而建立的。pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函式和方法。你很快就會發現,它是使python成為強大而高效的資料分析環境的重要因素之一。

2、pandas的使用

在jupyter notebook或者pycharm等開發工具中匯入pandas包即可使用:

import pandas as pd

3、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...