- 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]) | 反向按元素指数幂。 |
广告