
- Python Pandas 教程
- Python Pandas - 首頁
- Python Pandas - 簡介
- Python Pandas - 環境設定
- Python Pandas - 基礎知識
- Python Pandas - 資料結構介紹
- Python Pandas - 索引物件
- Python Pandas - Panel
- Python Pandas - 基本功能
- Python Pandas - 索引和資料選擇
- Python Pandas - Series
- Python Pandas - Series
- Python Pandas - Series 物件切片
- Python Pandas - Series 物件的屬性
- Python Pandas - Series 物件的算術運算
- Python Pandas - Series 到其他物件的轉換
- Python Pandas - DataFrame
- Python Pandas - DataFrame
- Python Pandas - 訪問 DataFrame
- Python Pandas - DataFrame 切片
- Python Pandas - 修改 DataFrame
- Python Pandas - 從 DataFrame 中刪除行
- Python Pandas - DataFrame 的算術運算
- Python Pandas - I/O 工具
- Python Pandas - I/O 工具
- Python Pandas - 使用 CSV 格式
- Python Pandas - 讀取和寫入 JSON 檔案
- Python Pandas - 從 Excel 檔案讀取資料
- Python Pandas - 將資料寫入 Excel 檔案
- Python Pandas - 使用 HTML 資料
- Python Pandas - 剪貼簿
- Python Pandas - 使用 HDF5 格式
- Python Pandas - 與 SQL 的比較
- Python Pandas - 資料處理
- Python Pandas - 排序
- Python Pandas - 重新索引
- Python Pandas - 迭代
- Python Pandas - 連線
- Python Pandas - 統計函式
- Python Pandas - 描述性統計
- Python Pandas - 使用文字資料
- Python Pandas - 函式應用
- Python Pandas - 選項和自定義
- Python Pandas - 視窗函式
- Python Pandas - 聚合
- Python Pandas - 合併/連線
- Python Pandas - 多級索引
- Python Pandas - 多級索引基礎
- Python Pandas - 使用多級索引進行索引
- Python Pandas - 使用多級索引的高階重新索引
- Python Pandas - 重新命名多級索引標籤
- Python Pandas - 對多級索引排序
- Python Pandas - 二元運算
- Python Pandas - 二元比較運算
- Python Pandas - 布林索引
- Python Pandas - 布林掩碼
- Python Pandas - 資料重塑和透視
- Python Pandas - 透視表
- Python Pandas - 堆疊和取消堆疊
- Python Pandas - 熔化
- Python Pandas - 計算虛擬變數
- Python Pandas - 分類資料
- Python Pandas - 分類資料
- Python Pandas - 分類資料的排序和排序
- Python Pandas - 比較分類資料
- Python Pandas - 處理缺失資料
- Python Pandas - 缺失資料
- Python Pandas - 填充缺失資料
- Python Pandas - 缺失值的插值
- Python Pandas - 刪除缺失資料
- Python Pandas - 使用缺失資料進行計算
- Python Pandas - 處理重複項
- Python Pandas - 重複資料
- Python Pandas - 計數和檢索唯一元素
- Python Pandas - 重複標籤
- Python Pandas - 分組和聚合
- Python Pandas - GroupBy
- Python Pandas - 時間序列資料
- Python Pandas - 日期功能
- Python Pandas - Timedelta
- Python Pandas - 稀疏資料結構
- Python Pandas - 稀疏資料
- Python Pandas - 視覺化
- Python Pandas - 視覺化
- Python Pandas - 其他概念
- Python Pandas - 警告和注意事項
- Python Pandas 有用資源
- Python Pandas - 快速指南
- Python Pandas - 有用資源
- Python Pandas - 討論
Python Pandas - DataFrame 切片
Pandas DataFrame 切片是根據位置和標籤提取特定行、列或資料子集的過程。在處理大型資料集時,DataFrame 切片是一種常見的操作,它類似於 Python 列表和 NumPy ndarrays,DataFrame 切片使用 [] 運算子和特定的切片屬性,如 .iloc[] 和 .loc[] 來有效地檢索資料。
在本教程中,我們將學習如何使用基於位置和基於標籤的索引來切片 Pandas DataFrame。
Pandas DataFrame 切片的介紹
Pandas DataFrame 切片使用兩個主要屬性執行,它們是:
.iloc[]:基於位置(基於整數的索引)進行切片。
.loc[]:基於標籤(索引標籤或列標籤)進行切片。
讓我們學習所有可能的 Pandas DataFrame 切片方法。
按位置切片 DataFrame
Pandas DataFrame.iloc[] 屬性用於基於 DataFrame 行和列的整數位置(即基於整數的索引)來切片 DataFrame。
以下是使用 .iloc[] 屬性切片 DataFrame 的語法:
DataFrame.iloc[row_start:row_end, column_start:column_end]
其中,row_start 和 row_end 表示 DataFrame 行的起始和結束整數索引值。類似地,column_start 和 column_end 是列索引值。
示例:按位置切片 DataFrame 行
以下示例演示如何使用 DataFrame.iloc[] 屬性切片 DataFrame 行。
import pandas as pd # Create a Pandas DataFrame df = pd.DataFrame([['a','b'], ['c','d'], ['e','f'], ['g','h']], columns=['col1', 'col2']) # Display the DataFrame print("Input DataFrame:") print(df) # Slice rows based on position result = df.iloc[1:3, :] print("Output:") print(result)
以上程式碼的輸出如下:
Input DataFrame: col1 col2 0 a b 1 c d 2 e f 3 g h Output: col1 col2 1 c d 2 e f
按標籤切片 DataFrame
Pandas DataFrame.loc[] 屬性用於基於行和列的標籤來切片 DataFrame。
以下是使用 .loc[] 屬性切片 DataFrame 的語法:
DataFrame.loc[row_label_start:row_label_end, column_label_start:column_label_end]
其中,row_label_start 和 row_label_end 表示 DataFrame 行的起始和結束標籤。類似地,column_label_start 和 column_label_end 是列標籤。
示例:使用 .loc[] 切片 DataFrame 行和列
以下示例演示如何使用 .loc[] 屬性透過其標籤來切片 DataFrame 行和列。
import pandas as pd # Create a DataFrame with labeled indices df = pd.DataFrame([['a','b'], ['c','d'], ['e','f'], ['g','h']], columns=['col1', 'col2'], index=['r1', 'r2', 'r3', 'r4']) # Display the DataFrame print("Original DataFrame:") print(df) # Slice rows and columns by label result = df.loc['r1':'r3', 'col1'] print("Output:") print(result)
以上程式碼的輸出如下:
Original DataFrame: col1 col2 r1 a b r2 c d r3 e f r4 g h Output: r1 a r2 c r3 e Name: col1, dtype: object
DataFrame 列切片
與上述行切片類似,Pandas DataFrame 列切片也可以使用 .iloc[] 進行位置切片,使用 .loc[] 進行標籤切片。
示例:使用 iloc[] 進行列切片
以下示例根據其整數位置切片 DataFrame 列。
import pandas as pd data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]} df = pd.DataFrame(data) # Slice a single column col_A = df.iloc[:, 0] print("Slicing a single column A using iloc[]:") print(col_A) # Slice multiple columns cols_AB = df.iloc[:, 0:2] print("Slicing multiple columns A and B using iloc[]:") print(cols_AB)
以上程式碼的輸出如下:
Slicing a single column A using iloc[]: 0 1 1 2 2 3 Name: A, dtype: int64 Slicing multiple columns A and B using iloc[]: A B 0 1 4 1 2 5 2 3 6
示例:使用 loc[] 進行列切片
此示例使用 .loc[] 屬性按其標籤切片 DataFrame 列。
import pandas as pd data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]} df = pd.DataFrame(data) # Slice a single column by label col_A = df.loc[:, 'A'] print("Slicing a single column A using loc[]:") print(col_A) # Slice multiple columns by label cols_AB = df.loc[:, 'A':'B'] print("Slicing Multiple columns A and B using loc[]:") print(cols_AB)
以上程式碼的輸出如下:
Slicing a single column A using loc[]: 0 1 1 2 2 3 Name: A, dtype: int64 Slicing Multiple columns A and B using loc[]: A B 0 1 4 1 2 5 2 3 6
切片後修改值
切片 DataFrame 後,可以直接修改切片的值。這可以透過為所選元素賦值新值來完成。
示例
此示例演示如何直接修改切片後的 DataFrame 值。
import pandas as pd # Create a DataFrame df = pd.DataFrame([['a', 'b'], ['c', 'd'], ['e', 'f'], ['g', 'h']], columns=['col1', 'col2']) # Display the Original DataFrame print("Original DataFrame:", df, sep='\n') # Modify a subset of the DataFrame using iloc df.iloc[1:3, 0] = ['x', 'y'] # Display the modified DataFrame print('Modified DataFrame:',df, sep='\n')
以上程式碼的輸出如下:
Original DataFrame: col1 col2 0 a b 1 c d 2 e f 3 g h Modified DataFrame: col1 col2 0 a b 1 x d 2 y f 3 g h