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

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

更新於 發佈於 閱讀時間約 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
螃蟹_crab的沙龍
138會員
249內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言
avatar-img
留言分享你的想法!
螃蟹_crab的沙龍 的其他內容
1. 什麼是虛擬環境 (venv)? 虛擬環境就是讓你在同一台電腦上,可以為不同的專案建立「獨立」的 Python 環境,互不干擾。 例如:某個專案用 Dash 3.0.4,另一個用 Dash 4.0,不會互相影響。 2. 如何建立一個新的 venv? 打開終端機 Terminal / C
在 Python 中,字典(dict)是非常常用的資料結構,用來儲存 key-value 配對。而在操作字典時,.setdefault() 是一個常被忽略但非常實用的方法。 這篇文章會完整介紹 .setdefault() 的語法、用途、與實務範例,幫助你更有效率地處理字典資料。 什麼是 .se
在軟體開發或部署過程中,我們經常需要對多個 .ini 設定檔進行批次修改,例如將某個舊的參數名稱或路徑名稱,替換成新的命名。 這就像記事本的「全部取代」功能,但你不需要一個個打開檔案慢慢點——你可以用 Python 自動完成這些事! 本文將介紹一個 Python 函式:search_and_re
1. 什麼是虛擬環境 (venv)? 虛擬環境就是讓你在同一台電腦上,可以為不同的專案建立「獨立」的 Python 環境,互不干擾。 例如:某個專案用 Dash 3.0.4,另一個用 Dash 4.0,不會互相影響。 2. 如何建立一個新的 venv? 打開終端機 Terminal / C
在 Python 中,字典(dict)是非常常用的資料結構,用來儲存 key-value 配對。而在操作字典時,.setdefault() 是一個常被忽略但非常實用的方法。 這篇文章會完整介紹 .setdefault() 的語法、用途、與實務範例,幫助你更有效率地處理字典資料。 什麼是 .se
在軟體開發或部署過程中,我們經常需要對多個 .ini 設定檔進行批次修改,例如將某個舊的參數名稱或路徑名稱,替換成新的命名。 這就像記事本的「全部取代」功能,但你不需要一個個打開檔案慢慢點——你可以用 Python 自動完成這些事! 本文將介紹一個 Python 函式:search_and_re