Pandas 筆記整理
1102 機器學習
DP前言筆記整理這篇文章是學習時整理的一些筆記,讓自己複習時方便,文章內容為上課之內容整理
Introduction
- Pandas是在用Python建立模型之前進行資料預處理的便利函式庫
- Pandas可對各式各樣的資料進行有彈性地加工處理 ,執行表格試算與資料抽出、搜尋等操作
使用前須import模組:
1 | import pandas as pd |
Series是是處理一維陣列的函式庫、Dataframe是處理二維陣列的函式庫
Series
基本用法
1 | data = pd.Series([0, 10, 20, 30, 40, 50, 60, 70]) |
values: [0, 10, 20, 30, 40, 50, 60, 70]
index: RangeIndex(start=0, stop=10, step=1)
指定索引值
1 | data = pd.Series([0, 10, 20, 30, 40, 50, 60, 70], |
values: [0, 10, 20, 30, 40, 50, 60, 70]
index: Index([‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’])
DataFrame
基本用法
1 | data = pd.DataFrame('ID': ['100', '101', '102'], |
行列操作
1 | print(df.T) #行列互換 |
資料抽取
1 | print(df.Birth_year) #特定取出某一行 |
行列刪除
若要刪除特定行或列,則可以用drop
方式
axis=0 為列, axis=1 為行
drop後並不會真的對原資料操作,若是要改動原資料,需進行assign的動作
1 | print(df.drop(['Brith_year'], axis=1)) #印出刪掉birth_year這行後的資料 |
行列結合
若要將兩個DataFrame合併可以使用merge
函式,merge
會找共同欄位的資料做合併的動作
(如以下兩個資料的共同欄位是ID則會選擇ID一樣的進行合併)
1 | data1 = pd.DataFrame('ID': ['100', '101', '102'], |
合併後資料:
‘ID’: [‘100’, ‘101’, ‘102’],
‘city’: [‘Taipei’, ‘Hsinchu’, ‘Tainan’],
‘Birth_year’: [1990, 1989, 1992],
‘Name’: [‘Sally’, ‘Hanks’, ‘Hannah’]
‘Math’: [ 50, 70, 90],
‘English’: [ 40, 60, 80],
‘Sex’: [‘M’, ‘F’, ‘F’]
資料統計
使用groupby
可以以某個特定的行為對資料進行統計
1 | print(data2.groupby('Sex')['Math'].mean()) #印出以Sex為區分的數學平均值 |
印出後資料:
Sex
F 80.000000
M 56.666666
Name: Math, dtype: float64
資料排序
排序可以針對索引值來排序,也可以針對值來排序
1 | print(data2.sort_index()) #印出以index排序的結果 |
資料缺值
使用isnull判斷資料是否為nan
1 | print(data2.isnull()) #印出資料是否為nan的布林值 |