[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-avatar-img
發文者
2024/08/26
[Python ]pandas基本操作,查看、新增、修改資料提及了這篇文章,趕快過去看看吧!
avatar-img
螃蟹_crab的沙龍
149會員
284內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
螃蟹_crab的沙龍的其他內容
2025/04/29
1. 什麼是虛擬環境 (venv)? 虛擬環境就是讓你在同一台電腦上,可以為不同的專案建立「獨立」的 Python 環境,互不干擾。 例如:某個專案用 Dash 3.0.4,另一個用 Dash 4.0,不會互相影響。 2. 如何建立一個新的 venv? 打開終端機 Terminal / C
Thumbnail
2025/04/29
1. 什麼是虛擬環境 (venv)? 虛擬環境就是讓你在同一台電腦上,可以為不同的專案建立「獨立」的 Python 環境,互不干擾。 例如:某個專案用 Dash 3.0.4,另一個用 Dash 4.0,不會互相影響。 2. 如何建立一個新的 venv? 打開終端機 Terminal / C
Thumbnail
2025/04/25
在 Python 中,字典(dict)是非常常用的資料結構,用來儲存 key-value 配對。而在操作字典時,.setdefault() 是一個常被忽略但非常實用的方法。 這篇文章會完整介紹 .setdefault() 的語法、用途、與實務範例,幫助你更有效率地處理字典資料。 什麼是 .se
Thumbnail
2025/04/25
在 Python 中,字典(dict)是非常常用的資料結構,用來儲存 key-value 配對。而在操作字典時,.setdefault() 是一個常被忽略但非常實用的方法。 這篇文章會完整介紹 .setdefault() 的語法、用途、與實務範例,幫助你更有效率地處理字典資料。 什麼是 .se
Thumbnail
2025/04/15
在軟體開發或部署過程中,我們經常需要對多個 .ini 設定檔進行批次修改,例如將某個舊的參數名稱或路徑名稱,替換成新的命名。 這就像記事本的「全部取代」功能,但你不需要一個個打開檔案慢慢點——你可以用 Python 自動完成這些事! 本文將介紹一個 Python 函式:search_and_re
2025/04/15
在軟體開發或部署過程中,我們經常需要對多個 .ini 設定檔進行批次修改,例如將某個舊的參數名稱或路徑名稱,替換成新的命名。 這就像記事本的「全部取代」功能,但你不需要一個個打開檔案慢慢點——你可以用 Python 自動完成這些事! 本文將介紹一個 Python 函式:search_and_re
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
本文探討了在使用 pandas 處理資料時應注意的幾個關鍵點,以及如何減少因資料型態問題而產生的錯誤,確保資料的原始意義得以保留。主要包括Pandas 資料處理深入解析,尋找CSV之外的數據儲存方案,以及優化資料處理策略。
Thumbnail
本文探討了在使用 pandas 處理資料時應注意的幾個關鍵點,以及如何減少因資料型態問題而產生的錯誤,確保資料的原始意義得以保留。主要包括Pandas 資料處理深入解析,尋找CSV之外的數據儲存方案,以及優化資料處理策略。
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,融合不同的資料欄位。 以product作為index,融合quarter_1,quarter_2,quarter_3,quarter_4 這四個欄位,並且重新命名為quarter,並且將數值欄位名稱重
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作為輸入,要求我們將兩張資料表,依照原有的順序串接在一起。 題目的原文敘述 測試範例 Example 1: Input: df1 +------------+---------+-----+ | student_id | name
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們回傳資料表的前3個Row。 題目的原文敘述 測試範例 Example 1: Input: DataFrame employees +-------------+-----------+-------------
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們回傳資料表的前3個Row。 題目的原文敘述 測試範例 Example 1: Input: DataFrame employees +-------------+-----------+-------------
Thumbnail
Hi,大家好。我是茶桁。 上一节课中,我们学习了matplotlib. 实际上,我们已经进入了数据可视化阶段。 可是在上一节课中,所有的数据都是我们固定写好的,包括两个电影的数据展示的案例(柱状图和直方图),都是我们将数据手动写成了数据列表,然后直接使用。 在我们平时的工作中,不太有那么多的机
Thumbnail
Hi,大家好。我是茶桁。 上一节课中,我们学习了matplotlib. 实际上,我们已经进入了数据可视化阶段。 可是在上一节课中,所有的数据都是我们固定写好的,包括两个电影的数据展示的案例(柱状图和直方图),都是我们将数据手动写成了数据列表,然后直接使用。 在我们平时的工作中,不太有那么多的机
Thumbnail
繼「【Google Colab Python系列】 資料處理神器 Pandas 起手式」之後,相信對於各位來說已經是小兒科了吧,沒關係! 我們今天來增加一點點小挑戰,你知道嗎? Pandas對於大部分人的第一印象就是「不就表格化而已,有什麼了不起?」、「幫我們整理格式轉換的介接器」...,但其實它不
Thumbnail
繼「【Google Colab Python系列】 資料處理神器 Pandas 起手式」之後,相信對於各位來說已經是小兒科了吧,沒關係! 我們今天來增加一點點小挑戰,你知道嗎? Pandas對於大部分人的第一印象就是「不就表格化而已,有什麼了不起?」、「幫我們整理格式轉換的介接器」...,但其實它不
Thumbnail
過往我們有介紹了「【Google Colab Python系列】 資料處理神器 Pandas 起手式」, 相信對於pandas的基本操作具有一定的基礎知識了, 主要著重在基本的操作, 讓我們快速篩選與分析資料, 但真實的世界是有可能具有很多類型的資料集分別儲存, 而不同的資料集又具有一些相似度, 需
Thumbnail
過往我們有介紹了「【Google Colab Python系列】 資料處理神器 Pandas 起手式」, 相信對於pandas的基本操作具有一定的基礎知識了, 主要著重在基本的操作, 讓我們快速篩選與分析資料, 但真實的世界是有可能具有很多類型的資料集分別儲存, 而不同的資料集又具有一些相似度, 需
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News