- 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 是一種二維資料結構,用於以表格格式儲存資料,類似於 SQL 或 Excel 中的表格。Pandas 的主要功能之一是能夠對 DataFrame 執行向量化算術運算。這意味著對 Pandas 資料結構的算術運算無需手動迴圈遍歷元素即可執行。
在 Pandas 中應用算術運算可以讓你快速有效地操作資料,無論你是處理單個 DataFrame 還是在多個 DataFrame 之間執行運算。
在本教程中,我們將學習如何在 Pandas DataFrame 上應用算術運算,如加法、減法、乘法和除法。
DataFrame 與標量值的算術運算
你可以直接對 DataFrame 和標量值執行算術運算。這些運算按元素應用,這意味著 DataFrame 中的每個值都會受到算術運算的影響。
以下是 Pandas DataFrame 上常用的算術運算子列表:
| 運算 | 使用運算子的示例 | 描述 |
|---|---|---|
| 加法 | df + 2 | 將 2 加到 DataFrame 的每個元素上 |
| 減法 | df - 2 | 從每個元素中減去 2 |
| 乘法 | df * 2 | 將每個元素乘以 2 |
| 除法 | df / 2 | 將每個元素除以 2 |
| 冪運算 | df ** 2 | 將每個元素提升到 2 的冪 |
| 取模 | df % 2 | 求除以 2 的餘數 |
| 地板除 | df // 2 | 除並取商的下界 |
示例
以下示例演示瞭如何在 Pandas DataFrame 上應用所有算術運算子以及標量值。
import pandas as pd
# Create a sample DataFrame
data = {'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}
df = pd.DataFrame(data)
# Display the input DataFrame
print("Input DataFrame:\n", df)
# Perform arithmetic operations
print("\nAddition:\n", df + 2)
print("\nSubtraction:\n", df - 2)
print("\nMultiplication:\n", df * 2)
print("\nDivision:\n", df / 2)
print("\nExponentiation:\n", df ** 2)
print("\nModulus:\n", df % 2)
print("\nFloor Division:\n", df // 2)
以下是上述程式碼的輸出:
Input DataFrame:
A B
0 1 5
1 2 6
2 3 7
3 4 8
Addition:
A B
0 3 7
1 4 8
2 5 9
3 6 10
Subtraction:
A B
0 -1 3
1 0 4
2 1 5
3 2 6
Multiplication:
A B
0 2 10
1 4 12
2 6 14
3 8 16
Division:
A B
0 0.5 2.5
1 1.0 3.0
2 1.5 3.5
3 2.0 4.0
Exponentiation:
A B
0 1 25
1 4 36
2 9 49
3 16 64
Modulus:
A B
0 1 1
1 0 0
2 1 1
3 0 0
Floor Division:
A B
0 0 2
1 1 3
2 1 3
3 2 4
兩個 DataFrame 之間的算術運算
Pandas 允許你在兩個 DataFrame 之間應用算術運算子。正如我們已經知道的,DataFrame 是根據它們的索引和列標籤對齊的。如果在應用這些運算子時標籤不匹配,則相應的結果將為 NaN。
示例
此示例演示了在兩個 DataFrame 物件上應用算術運算。
import pandas as pd
# Create two DataFrames
df1 = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
df2 = pd.DataFrame({'A': [10, 20, 30], 'B': [50, 60, 70]}, index=[1, 2, 3])
# Display the input DataFrames
print("DataFrame 1:\n", df1)
print("\nDataFrame 2:\n", df2)
# Perform arithmetic operations
print("\nAddition:\n", df1 + df2)
print("\nSubtraction:\n", df1 - df2)
print("\nMultiplication:\n", df1 * df2)
print("\nDivision:\n", df1 / df2)
以下是上述程式碼的輸出:
DataFrame 1:
A B
0 1 5
1 2 6
2 3 7
3 4 8
DataFrame 2:
A B
1 10 50
2 20 60
3 30 70
Addition:
A B
0 NaN NaN
1 12.0 56.0
2 23.0 67.0
3 34.0 78.0
Subtraction:
A B
0 NaN NaN
1 -8.0 -44.0
2 -17.0 -53.0
3 -26.0 -62.0
Multiplication:
A B
0 NaN NaN
1 20.0 300.0
2 60.0 420.0
3 120.0 560.0
Division:
A B
0 NaN NaN
1 0.200000 0.120000
2 0.150000 0.116667
3 0.133333 0.114286
Pandas 中的算術函式
除了上述運算子外,Pandas 還提供了各種函式來對 Pandas 資料結構執行算術運算,這些函式可以有效地處理缺失值並提供其他自定義選項,例如選擇軸和指定級別。
| 序號 | 函式 | 描述 |
|---|---|---|
| 1 | add(other[, axis, level, fill_value]) | 按元素加法(二元運算子 +)。 |
| 2 | sub(other[, axis, level, fill_value]) | 按元素減法(二元運算子 -)。 |
| 3 | mul(other[, axis, level, fill_value]) | 按元素乘法(二元運算子 *)。 |
| 4 | div(other[, axis, level, fill_value]) | 按元素浮點除法(二元運算子 /)。 |
| 5 | truediv(other[, axis, level, ...]) | 按元素浮點除法(二元運算子 /)。 |
| 6 | floordiv(other[, axis, level, ...]) | 按元素整數除法(二元運算子 //)。 |
| 7 | mod(other[, axis, level, fill_value]) | 按元素取模運算(二元運算子 %)。 |
| 8 | pow(other[, axis, level, fill_value]) | 按元素指數冪(二元運算子 **)。 |
| 9 | dot(other) | 與另一個 DataFrame 或陣列進行矩陣乘法。 |
| 10 | radd(other[, axis, level, fill_value]) | 反向按元素加法。 |
| 11 | rsub(other[, axis, level, fill_value]) | 反向按元素減法。 |
| 12 | rmul(other[, axis, level, fill_value]) | 反向按元素乘法。 |
| 13 | rdiv(other[, axis, level, fill_value]) | 反向按元素浮點除法。 |
| 14 | rfloordiv(other[, axis, level, ...]) | 反向按元素整數除法。 |
| 15 | rmod(other[, axis, level, fill_value]) | 反向按元素取模運算。 |
| 16 | rpow(other[, axis, level, fill_value]) | 反向按元素指數冪。 |
廣告