Pandas基本用法彙總

0| 引言

Pandas是基於NumPy的一種工具,該工具是為了解決資料分析任務而建立的。

Pandas納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。

Pandas提供了大量能使我們快速便捷地處理資料的函式和方法。

1| 建立Series

Series是Pandas中最基本的物件,Series類似一種一維陣列。

事實上,Series基本上就是基於NumPy的陣列物件來的。

和NumPy的陣列不同,Series能為資料自定義標籤,也就是索引(index),然後透過索引來訪問陣列中的資料。

import pandas as pdimport numpy as nps1 = pd。Series([4,7,-3,0])print(s1)

Pandas基本用法彙總

圖 1 Series示例

s1.values : 檢視series的值

s1.index : 檢視series的索引值

s1。valuess1。index

Pandas基本用法彙總

圖2 檢視values和index

s2 = pd。Series([4。0, 6。5, -0。5, 3],index= [‘d’,‘c’,‘b’,‘a’])print(s2)

Pandas基本用法彙總

圖3 s2示例

根據索引取值:

s2[‘b’]s2[[‘a’,‘b’,‘c’]]

Pandas基本用法彙總

圖4 根據索引取值

Pandas基本用法彙總

圖5 檢視索引序列是否在s2陣列中

2| 建立DataFrame

DataFrame是一個二維的表結構。Pandas的DataFrame可以儲存許多種不同的資料型別,

並且每一個座標軸都有自己的標籤。你可以把它想象成一個series的字典項。

# DataFramedata ={‘year’:[2013,2015,2016,2017], ‘income’:[1000, 2000,3000,4000], ‘pay’:[5000, 10000, 20000,30000] } # 以列排列df1=pd。DataFrame(data)df1

Pandas基本用法彙總

圖6 DataFrame示例

DataFrame的屬性

df1。columns :檢視列元素

df1。index :檢視索引

df1。values :檢視所有元素

df1。describe:檢視描述屬性

Pandas基本用法彙總

圖7 檢視DataFrame的columns,index,values屬性

describe(): 可以檢視mean(), std(), min(), 四分之一分位,二分之一分位,四分之三分位,max()

Pandas基本用法彙總

圖8 檢視describe屬性

df3 =pd。DataFrame(np。arange(12)。reshape((3,4)),index=[‘a’,‘c’,‘b’],columns=[2,33,44,5])df3

Pandas基本用法彙總

圖8 示例

# 以列索引升序排列df3。sort_index(axis=1)

Pandas基本用法彙總

圖9 列索引排序

# 以行索引升序排列df3。sort_index(axis=0)

Pandas基本用法彙總

圖 10 行索引排序

# 以某值所對應的索引值進行排序df3。sort_values(by=44)

Pandas基本用法彙總

圖 11 以某值所對應的索引值進行排序

3| Pandas的資料選擇

import pandas as pd import numpy as npdates = pd。date_range(‘20170101’,periods=6)df1 = pd。DataFrame(np。arange(24)。reshape((6,4)),index=dates, columns =[‘A’,‘B’,‘C’,‘D’])df1

Pandas基本用法彙總

圖12 示例

檢視DataFrame的列Series

df1[‘A’] =df1。A

Pandas基本用法彙總

圖 13

檢視前兩行:

Pandas基本用法彙總

圖14 檢視前兩行

以索引名選取:

Pandas基本用法彙總

圖15 以索引名選取

行索引:

Pandas基本用法彙總

圖16 行索引

透過位置【行與列】選擇資料

Pandas基本用法彙總

圖17 透過位置索引

混合標籤位置選擇

Pandas基本用法彙總

圖18 混合標籤索引

4 | Pandas的賦值與操作

import pandas as pd import numpy as npdates = np。arange(20201001,20201007)df1 =pd。DataFrame(np。arange(24)。reshape((6,4)),index=dates, columns=[‘A’,‘B’,‘C’,‘D’])df1

Pandas基本用法彙總

圖 19 示例

利用位置賦值

df1。iloc[2,2]

Pandas基本用法彙總

圖 20 檢視位置

df1。iloc[2,2] =100df1

Pandas基本用法彙總

圖 21 賦值

利用標籤賦值

Pandas基本用法彙總

圖 22 利用位置賦值

利用邏輯語句賦值

Pandas基本用法彙總

圖 23 利用邏輯語句賦值1

Pandas基本用法彙總

圖24 利用邏輯語句 賦值2

新增一列:

Pandas基本用法彙總

圖 25 新增一列 1

Pandas基本用法彙總

圖 26 新增一列2

新增一行

Pandas基本用法彙總

圖 27 新增一行1

Pandas基本用法彙總

圖 28 新增一行2

插入列

Pandas基本用法彙總

圖29 將df2的E列元素,插入第2列的G標籤的列

g = df1。pop(‘G’)df1。insert(6,‘G’,g)df1

Pandas基本用法彙總

圖 30 將g插入第7列的“G”列

刪除 列

Pandas基本用法彙總

圖 31 刪除列

Pandas基本用法彙總

圖 32 刪除“A”,“B”列

Pandas基本用法彙總

圖 33 刪除前兩行

5 | Pandas 處理預設值

import pandas as pd import numpy as npdates = np。arange(20201001,20201007)df1 = pd。DataFrame(np。arange(18)。reshape((6,3)),index=dates, columns=[‘A’,‘B’,‘C’])df1

Pandas基本用法彙總

圖 34 示例

df2 = pd。DataFrame(df1,index=dates, columns=[‘A’,‘B’,‘C’,‘D’,‘E’])df2

Pandas基本用法彙總

圖 35 生成預設陣列 1

Pandas基本用法彙總

圖 36 生成預設陣列 2

去除空值的行:

# 去除空值的行df2。dropna(axis=0, how=‘any’) #axis =[0,1] 0表示行,列表示列。 how=[‘any’,‘all’] any:表示任意一個NaN all:表示全部為NaN

Pandas基本用法彙總

圖 37 去除空值的行1

Pandas基本用法彙總

圖 38 去除空值的行 2

將空值全部賦值為0:

Pandas基本用法彙總

圖 39 去除空值並賦值為0

檢視空值

Pandas基本用法彙總

圖 40 檢視空值1

6|Pandas 合併

import pandas as pdimport numpy as npdf1 = pd。DataFrame(np。arange(12)。reshape((3,4)),columns=[‘A’,‘B’,‘C’,‘D’])df2 = pd。DataFrame(np。arange(12,24)。reshape((3,4)),columns=[‘A’,‘B’,‘C’,‘D’])df3 = pd。DataFrame(np。arange(24,36)。reshape((3,4)),columns=[‘A’,‘B’,‘C’,‘D’])print(df1)print(‘**__________**’)print(df2)print(‘**__________**’)print(df3)

Pandas基本用法彙總

圖 41 示例

縱向合併:

Pandas基本用法彙總

圖42 縱向合併

縱向合併,不考慮原來的jndex

Pandas基本用法彙總

圖43 縱向合併,不考慮原來的jndex

橫向合併,不考慮原來的index

Pandas基本用法彙總

圖44 橫向合併,不考慮原來的index

生成兩個表:

Pandas基本用法彙總

圖 45 生成兩個表

Pandas基本用法彙總

圖 46 合併兩個表,缺少部分用NaN填充

Pandas基本用法彙總

圖 47 合併兩個表, 缺少部分去掉

Pandas基本用法彙總

圖 48 橫向合併

Pandas基本用法彙總

圖 49 預設合併