學完了Pandas Series以後,接著是學習Pandas套件中的第二種資料型態「DataFrame」,有點類似於Execl的表格概念,能同時儲存[欄]和[列]的資料。這邊是Pandas DataFrame的一些基本用法。
本篇文章內容
什麼是DataFrame?
DataFrame是Pandas套件中,最重要的元素之一,是一種「雙維度資料」,可以同時儲存「欄」和「列」。
怎麼創建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電影版
發佈留言