如何在 Pandas DataFrame 中减去两列?
在使用 Pandas DataFrame 时,可能会出现需要在属性之间进行算术运算的情况。其中一种运算是减去两个属性。在本指南中,我们将深入研究在 Pandas DataFrame 中减去两个属性的三种不同技术:使用 `sub` 方法、利用 `apply` 方法与 lambda 函数结合以及利用 `subtract` 函数。示例将有助于理解这些方法。
方法 1:使用 `sub` 方法
`sub` 方法是 Pandas 的固有函数,有助于直接从一个属性中减去另一个属性。此技术对于在 DataFrame 属性之间执行推论非常简单有效。
语法
result = dataframe['attribute1'].sub(dataframe['attribute2'])
在这种情况下,"attribute1"和"attribute2"表示 DataFrame 中的属性名称,从而产生一个 Pandas 序列,该序列封装了这两个属性的发现。
示例
在给定的实例中,构建了一个 DataFrame,包含两个属性,即"A"和"B"。
然后,我们使用"sub"方法从属性"A"中推导出属性"B",并将结果存储在名为"Difference"的新属性中。
import pandas as pd data = {'A': [10, 20, 30, 40], 'B': [5, 15, 25, 35]} df = pd.DataFrame(data) df['Difference'] = df['A'].sub(df['B']) print(df)
输出
A B Difference 0 10 5 5 1 20 15 5 2 30 25 5 3 40 35 5
方法 2:将 `apply` 方法与 lambda 函数结合使用
`apply` 方法与 lambda 函数结合使用时,可在 DataFrame 中的两个属性之间进行元素级推导。
语法
result = dataframe.apply(lambda row: row['attribute1'] - row['attribute2'], axis=1)
此处,`apply` 方法遍历 DataFrame 的行。lambda 函数接受每一行作为输入,并从"attribute1"中扣除"attribute2"。结果是一个包含两个属性推导结果的 Pandas Series。
示例
在后续示例中,我们使用与之前相同的 DataFrame,并使用 lambda 函数的 `apply` 方法从属性"A"中推导出属性"B"。结果存储在名为"Difference"的新属性中。
import pandas as pd data = {'A': [10, 20, 30, 40], 'B': [5, 15, 25, 35]} df = pd.DataFrame(data) df['Difference'] = df.apply(lambda row: row['A'] - row['B'], axis=1) print(df)
输出
A B Difference 0 10 5 5 1 20 15 5 2 30 25 5 3 40 35 5
方法 3:利用 `subtract` 函数
`subtract` 函数是另一个 Pandas 固有函数,允许在 DataFrame 属性之间进行扣除。
语法
result = dataframe['attribute1'].subtract(dataframe['attribute2'])
在此上下文中,'attribute1' 和 'attribute2' 代表 DataFrame 中属性名称的占位符,最终形成包含这两个属性结果的 Pandas 排列。
示例
在随后的示例中,我们使用与之前相同的 DataFrame,并使用 `subtract` 函数从属性 'A' 中扣除属性 'B'。结果存储在名为"差异"的新属性中。
import pandas as pd data = {'A': [10, 20, 30, 40], 'B': [5, 15, 25, 35]} df = pd.DataFrame(data) df['Difference'] = df['A'].subtract(df['B']) print(df)
输出
A B Difference 0 10 5 5 1 20 15 5 2 30 25 5 3 40 35 5
结论
在本指南中,我们研究了如何利用各种技术在 Pandas DataFrame 中推导两个属性。我们探索了 `sub` 方法、与 lambda 函数结合的 `apply` 方法以及 `subtract` 函数。每种技术都提供了一种简单有效的方法来在 Pandas DataFrames 中执行属性推导,具体取决于您的数据操作任务的特定需求。