[Python]資料分析工具pandas基礎介紹

更新於 2024/09/01閱讀時間約 1 分鐘

從基本概念開始,然後逐步深入學習 pandas 的各種功能。這是一個非常強大的 Python 資料分析工具,常用於處理結構化數據。

基本概念

pandas 主要有兩個核心資料結構

  • Series: 一維的資料結構,類似於 Python 中的列表,但它可以帶有標籤(index)。
  • DataFrame: 二維的資料結構,類似於電子表格或數據表,由多個 Series 組成。

建立資料

Series : ​

import numpy as np
import pandas as pd

s1 = pd.Series([78,82,86,65])
print(s1)

s1 = pd.Series([78,82,86,65], index=list("ABCD"))
print(s1)

s1 = pd.Series({'a':78,'b':82,'c':86,'d':65})
print(s1)

範例輸出

左邊是欄位的索引,右邊是數值

0    78
1 82
2 86
3 65
dtype: int64
A 78
B 82
C 86
D 65
dtype: int64
a 78
b 82
c 86
d 65
dtype: int64

取出數據

  • 位置索引 是基於數字的位置來取值,從 0 開始。
  • 標籤索引 是基於你為 Series 提供的索引標籤來取值。
print(s1[0])  # 78 
print(s1['a']) # 78

要避免混淆,可以使用 .loc[](根據標籤取值)和 .iloc[](根據位置取值)這兩個方法:

  • s1.loc['a']:根據標籤 'a' 取值。
  • s1.iloc[0]:根據位置 0 取值。
print(s1.iloc[0]) # 78
print(s1.loc['a']) # 78

DataFrame

DataFrame 是一個表格數據,包含多個列,每列都可以有不同的數據類型。

# 建立一個 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [24, 27, 22, 32],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
print(df)

範例輸出

用成大家熟悉的Excel型式呈現,Pandas也支援讀取寫入Excel。

raw-image
      Name  Age         City
0 Alice 24 New York
1 Bob 27 Los Angeles
2 Charlie 22 Chicago
3 David 32 Houston

取出數據

DataFrame 也可以使用類似的索引方式來取值。不過,因為 DataFrame 是二維結構,所以會跟Series有些細節會有所不同。讓我們來看看 DataFrame 的索引用法

# 選取 'Name'
print(df['Name'])

# 輸出
0 Alice
1 Bob
2 Charlie
3 David
Name: Name, dtype: object

使用 .loc[] 基於標籤索引

loc 方法允許你使用標籤索引來選取特定的行或行和列的組合。

選取特定行

# 選取標籤索引為 1 的行
print(df.loc[1])

# 輸出
Name Bob
Age 27
City Los Angeles
Name: 1, dtype: object

就很像Excel用篩選的方式,選出Bob這一行的資料,只是Excel是用列篩選的方式,Padas是取出選取行的方式。

raw-image

選取特定行和列

# 選取標籤索引為 1,並且僅顯示 'Name'
print(df.loc[1, 'Name'])

# 輸出
Bob

使用 .iloc[] 基於位置索引

iloc 方法允許你使用數字位置來選取資料。

# 選取第一行(行索引為 0print(df.iloc[0])

# 輸出
Name Alice
Age 24
City New York
Name: 0, dtype: object

選取特定行和列

# 選取第一行第一列 print(df.iloc[0, 0])

# 輸出
Alice

多行多列選取

loc用法與iloc一樣

# 選取前兩行
print(df.loc[:2])

# 輸出前兩行
Name Age City
0 Alice 24 New York
1 Bob 27 Los Angeles
print(df.iloc[:2])

# 輸出前兩行
Name Age City
0 Alice 24 New York
1 Bob 27 Los Angeles

選取特定多行和多列

loc用法

# 選取前兩行和 'Name''Age'
print(df.loc[:1, ('Name','Age')])

# 輸出
Name Age
0 Alice 24
1 Bob 27

iloc用法

# 選取前兩行和前兩列
print(df.iloc[:2,:2])

# 輸出
Name Age
0 Alice 24
1 Bob 27

使用布林條件選取

你還可以根據布林條件選取資料:

# 選取 Age 大於 25 的行
print(df[df['Age'] > 25])

# 輸出
Name Age City
1 Bob 27 Los Angeles
3 David 32 Houston


總結

  • df['列名']:選取特定的列。
  • df.loc[行標籤, 列標籤]:基於標籤選取特定的行和列。
  • df.iloc[行位置, 列位置]:基於數字位置選取特定的行和列。
  • df[條件]:根據布林條件選取行。

這些方法與 Series 的用法相似,但由於 DataFrame 是二維的,所以在選取資料時會涉及到行和列的組合。


avatar-img
128會員
209內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
在 Python 中,可以使用多種方法來去除字串中的空白字元,以下是幾種常見的方法: 固定位置型 使用 strip() 方法 strip() 方法會去除字串前後的空白字元(包括空格、換行、製表符號等)。
有別於正則表達式符號的難以理解,有其他簡單的方式也可以來處理字串的問題。 本文主要介紹其他方法用於處理字串,尋找字串中的關鍵字與其他操作。 [Python]Re正則表達式中常用符號的重點整理 字串方法(String Methods) Python 提供了多種內建的字串方法,可以替代某些簡單
紀錄一些,實用的re正則表達式需要用時,就可以直接複製貼上。 檢查是否有中文字
當使用正則表達式(Regular Expressions, Regex)時,不同的符號和構造具有特定的含義,這些符號和模式可以用來構建靈活且強大的文本匹配規則。 以下是正則表達式中常用符號的重點整理: 字元類別 (Character Classes) [abc]: 匹配 a、b 或 c 中
re 模組基本介紹 re 模組是 Python 用來處理正則表達式的標準模組。 正則表達式是一種用於描述字串模式的語法,可以用來匹配、搜尋、分割和替換字串中的特定模式。
呈上篇[Python基礎]類別繼承(Inheritance) 中使用的super()並加以說明,此篇文章主要敘述使用super()有什麼好處及優點。 super():是一個內建函數,用來返回父類別的物件,以便你可以使用這個物件來呼叫父類別的方法或屬性。 這種做法的目的是在子類別中繼承並延續父類別
在 Python 中,可以使用多種方法來去除字串中的空白字元,以下是幾種常見的方法: 固定位置型 使用 strip() 方法 strip() 方法會去除字串前後的空白字元(包括空格、換行、製表符號等)。
有別於正則表達式符號的難以理解,有其他簡單的方式也可以來處理字串的問題。 本文主要介紹其他方法用於處理字串,尋找字串中的關鍵字與其他操作。 [Python]Re正則表達式中常用符號的重點整理 字串方法(String Methods) Python 提供了多種內建的字串方法,可以替代某些簡單
紀錄一些,實用的re正則表達式需要用時,就可以直接複製貼上。 檢查是否有中文字
當使用正則表達式(Regular Expressions, Regex)時,不同的符號和構造具有特定的含義,這些符號和模式可以用來構建靈活且強大的文本匹配規則。 以下是正則表達式中常用符號的重點整理: 字元類別 (Character Classes) [abc]: 匹配 a、b 或 c 中
re 模組基本介紹 re 模組是 Python 用來處理正則表達式的標準模組。 正則表達式是一種用於描述字串模式的語法,可以用來匹配、搜尋、分割和替換字串中的特定模式。
呈上篇[Python基礎]類別繼承(Inheritance) 中使用的super()並加以說明,此篇文章主要敘述使用super()有什麼好處及優點。 super():是一個內建函數,用來返回父類別的物件,以便你可以使用這個物件來呼叫父類別的方法或屬性。 這種做法的目的是在子類別中繼承並延續父類別
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,融合不同的資料欄位。 以product作為index,融合quarter_1,quarter_2,quarter_3,quarter_4 這四個欄位,並且重新命名為quarter,並且將數值欄位名稱重
Thumbnail
題目敘述 題目會給定兩個pandas DataFrame作為輸入,要求我們將兩張資料表,依照原有的順序串接在一起。 題目的原文敘述 測試範例 Example 1: Input: df1 +------------+---------+-----+ | student_id | name
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們回傳資料表的前3個Row。 題目的原文敘述 測試範例 Example 1: Input: DataFrame employees +-------------+-----------+-------------
Thumbnail
題目敘述 題目會給定一個python list形式的輸入,要求我們把它轉換成pandas dataframe的形式做輸出。並且指定column名稱分別為student_id, 和 age 題目的原文敘述 測試範例
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,融合不同的資料欄位。 以product作為index,融合quarter_1,quarter_2,quarter_3,quarter_4 這四個欄位,並且重新命名為quarter,並且將數值欄位名稱重
Thumbnail
題目敘述 題目會給定兩個pandas DataFrame作為輸入,要求我們將兩張資料表,依照原有的順序串接在一起。 題目的原文敘述 測試範例 Example 1: Input: df1 +------------+---------+-----+ | student_id | name
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們回傳資料表的前3個Row。 題目的原文敘述 測試範例 Example 1: Input: DataFrame employees +-------------+-----------+-------------
Thumbnail
題目敘述 題目會給定一個python list形式的輸入,要求我們把它轉換成pandas dataframe的形式做輸出。並且指定column名稱分別為student_id, 和 age 題目的原文敘述 測試範例