Pandas DataFrame用法|Python Pandas中的「雙維度資料」【Python練習Day17】

學完了Pandas Series以後,接著是學習Pandas套件中的第二種資料型態「DataFrame」,有點類似於Execl的表格概念,能同時儲存[欄]和[列]的資料。這邊是Pandas DataFrame的一些基本用法。

By.

min read

crop hacker silhouette typing on computer keyboard while hacking system

pexels-photo-5240547

學完了Pandas Series以後,接著是學習Pandas套件中的第二種資料型態「DataFrame」,有點類似於Execl的表格概念,能同時儲存[欄]和[列]的資料。這邊是Pandas DataFrame的一些基本用法。

Python 2

怎麼創建Pandas DataFrame?

import pandas as pd
建立DataFrame-pd.DataFrame([字典,索引列表])

DataFrame和Series差別

Series為一欄一欄的「單維度資料」,而DataFrame則是由兩個以上的Series組成的「雙維度資料」。

安裝Python Pandas套件

第一次使用Pandas,要先安裝Python Pandas套件,在Google Colab,使用以下代碼即可安裝。

!pip install pandas

安裝完成

Requirement already satisfied: pandas in /usr/local/lib/python3.6/dist-packages (1.1.5)
Requirement already satisfied: numpy>=1.15.4 in /usr/local/lib/python3.6/dist-packages (from pandas) (1.19.5)
Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.6/dist-packages (from pandas) (2.8.1)
Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.6/dist-packages (from pandas) (2018.9)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil>=2.7.3->pandas) (1.15.0)

Python DataFrame介紹

雙維度資料

DataFrame是Pandas中呈現「雙維度資料」的型態,就像一個表格,有「欄」和「列」的概念,可以想像成excel,直的為欄,橫的為列,用來儲存大量資料。

資料索引

資料的的最左邊是獨立編號,稱之為資料索引,如果沒有特別設定的話,預設為數字。

DataFrame用法

這邊文章會練習幾個DataFrame的基本用法。

  • 觀察資料:觀察資料的大小、數量。
  • 取得資料:取得特定欄位的資料。
  • 增加資料:增加欄位的方法。

DataFrame用法練習

建立DataFrame

import pandas as pd
#建立DataFrame-pd.DataFrame([字典,索引列表])
data=pd.DataFrame({
    "name":["Amy","John","Bob"],
    "salary":[30000,50000,40000]
},index=["a","b","c"]
)

執行結果

name	salary
a	Amy	30000
b	John	50000
c	Bob	40000

觀察資料

回傳資料數量可以使用(size),如果要分別獲得列&欄資料,則使用(shape)。

print("資料數量:",data.size) #獲得資料數量
print("資料形狀(列,欄):",data.shape) #獲得資料形狀

執行結果

資料數量: 6
資料形狀(列,欄): (3, 2)

取得資料

針對DataFrame,取得指定[列]、指定[索引]、[指定欄位名稱]的資料。

#取得資料
#取得「列」(Row)資料
print("取得第2列:",data.iloc[1])
#取得索引-loc[索引]
print("取得第c列",data.loc["c"])
#取得欄資料([欄位名稱] #Series型態
print("取得欄位name:",data["name"])

執行結果

取得第2列: name       John
salary    50000
Name: b, dtype: object
取得第c列 name        Bob
salary    40000
Name: c, dtype: object
取得欄位name: a     Amy
b    John
c     Bob
Name: name, dtype: object

增加資料

在DataFrame中,如果要增加新的一欄,直接放入一個Series型態即可,下面練習分別增加欄位:依序放入資料、指定順序放入資料、針對現有資料運算後放入。

增加一欄rev(依序放入資料)

data["rev"]=[50000,40000,30000] #加一欄
print(data)

執行結果

   name  salary    rev  
a   Amy   30000  50000  
b  John   50000  40000     
c   Bob   40000  30000    

增加一欄rank(按照指定順序放入資料)

data["rank"]=pd.Series([3,1,2],index=("a","b","c"))
print(data)

執行結果

   name  salary    rev  rank    
a   Amy   30000  50000     3  
b  John   50000  40000     1 
c   Bob   40000  30000     2  

增加一欄cp(計算rev/salary)

data["cp"]=data["rev"]/data["salary"]
print(data)

執行結果

   name  salary    rev  rank        cp
a   Amy   30000  50000     3  1.666667
b  John   50000  40000     1  0.800000
c   Bob   40000  30000     2  0.750000

本次練習檔與影片

練習檔:Python Pandas 資料分析 – DataFrame 雙維度資料
影片:Day17(1/11)Pandas DataFrame|Python Pandas中的「雙維度資料」

【Python新手練習】相關文章

【Python新手練習】系列文,是一個行銷人學習Python的筆記,希望可以藉由練習程式,訓練更強大的邏輯思考,如果你也對這塊有興趣,這些文章或許可以幫助到你!也歡迎一起交流。

行銷人的Python練習90計畫-為什麼要學Python?
Day0:Google Colab新手Python開發環境推薦
Day1:Python變數與資料型態
Day2:Python判斷式與迴圈(流程控制)
Day3:Python函式 定義、呼叫與回傳
Day4:載入Python模組與使用
Day5:Python檔案讀取和儲存
Day6:Python亂數與統計
Day7:Python API 開放資料串接,抓取台北市政府公開資料
Day8:Python實體物件建立與使用
Day9:Python爬蟲實戰!抓取PTT電影版

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *