
- 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 - 函式應用
Pandas 提供了強大的方法來將自定義函式或庫函式應用於 DataFrame 和 Series 物件。根據您是想將函式應用於整個 DataFrame、按行或按列,還是按元素應用,Pandas 提供了幾種方法來實現這些任務。
在本教程中,我們將探討 Pandas 中三種基本的函式應用方法:
- 表級函式應用:pipe()
- 行或列級函式應用:apply()
- 元素級函式應用:map()
讓我們深入瞭解每種方法,看看如何有效地利用它們。
表級函式應用
pipe() 函式允許您應用可連結的函式,這些函式期望 DataFrame 或 Series 作為輸入。此方法對於以清晰易讀的方式對整個 DataFrame 執行自定義操作非常有用。
示例:將自定義函式應用於整個 DataFrame
以下示例演示瞭如何使用 pipe() 函式向 DataFrame 中的所有元素新增值。
import pandas as pd import numpy as np def adder(ele1,ele2): return ele1+ele2 df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3']) print('Original DataFrame:\n', df) df.pipe(adder,2) print('Modified DataFrame:\n', df)
其輸出如下:
Original DataFrame: col1 col2 col3 0 2.349190 1.908931 -0.121444 1 1.306488 -0.946431 0.308926 2 -0.235694 -0.720602 1.089614 3 0.960508 -1.273928 0.943044 4 -1.180202 -0.959529 0.464541 Modified DataFrame: col1 col2 col3 0 2.349190 1.908931 -0.121444 1 1.306488 -0.946431 0.308926 2 -0.235694 -0.720602 1.089614 3 0.960508 -1.273928 0.943044 4 -1.180202 -0.959529 0.464541
行或列級函式應用
apply() 函式非常通用,允許您沿 DataFrame 的軸應用函式。預設情況下,它按列應用函式,但您可以使用 axis 引數指定按行應用。
示例:按列應用函式
此示例將函式應用於 DataFrame 列。這裡 np.mean() 函式計算每一列的平均值。
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 3), columns=['col1', 'col2', 'col3']) print('Original DataFrame:\n', df) result = df.apply(np.mean) print('Result:\n',result)
其輸出如下:
Original DataFrame: col1 col2 col3 0 -0.024666 0.058480 0.658520 1 -0.040997 1.253245 -1.242394 2 1.073832 -1.039897 0.840698 3 0.248157 -1.985475 0.310767 4 -0.973393 -1.002330 -0.890125 Result: col1 0.056587 col2 -0.543195 col3 -0.064507 dtype: float64
透過將值 1 傳遞給 axis 引數,可以按行執行操作。
示例:按行應用函式
此函式將 np.mean() 函式應用於 pandas DataFrame 的行。
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 3), columns=['col1', 'col2', 'col3']) print('Original DataFrame:\n', df) result = df.apply(np.mean, axis=1) print('Result:\n',result)
其輸出如下:
Original DataFrame: col1 col2 col3 0 0.069495 -1.228534 -1.431796 1 0.468724 0.497217 -0.270103 2 -0.754304 0.053360 -1.298396 3 0.762669 -2.181029 -2.067756 4 0.129679 0.131104 1.010851 Result: 0 -0.863612 1 0.231946 2 -0.666446 3 -1.162039 4 0.423878 dtype: float64
示例:應用 Lambda 函式
以下示例使用 apply() 方法將 lambda 函式應用於 DataFrame 元素。
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 3), columns=['col1', 'col2', 'col3']) print('Original DataFrame:\n', df) result = df.apply(lambda x: x.max() - x.min()) print('Result:\n',result)
其輸出如下:
Original DataFrame: col1 col2 col3 0 -1.143522 0.413272 0.633881 1 0.200806 -0.050024 0.108580 2 -2.147704 -0.400682 -1.191469 3 2.342222 -2.398639 0.063151 4 -1.071437 1.895879 -0.916805 Result: col1 4.489926 col2 4.294518 col3 1.825350 dtype: float64
元素級函式應用
當您需要將函式分別應用於每個元素時,可以使用 map() 函式。當函式無法向量化時,這些方法特別有用。
示例:使用 map() 函式
以下示例演示瞭如何使用 map() 函式將自定義函式應用於 DataFrame 物件的元素。
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3']) # My custom function df['col1'].map(lambda x:x*100) print(df.apply(np.mean))
其輸出如下:
col1 0.480742 col2 0.454185 col3 0.266563 dtype: float64
廣告