如何在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:使用lambda函数结合apply方法
当apply
方法与lambda函数结合时,可以在DataFrame中对两个属性进行逐个元素的推断。
语法
result = dataframe.apply(lambda row: row['attribute1'] - row['attribute2'], axis=1)
在这里,apply
方法对DataFrame的每一行进行迭代。lambda函数接受每一行作为输入,并从’attribute1’中减去’attribute2’。结果是一个包含两个属性减法的Pandas Series。
示例
在随后的示例中,我们使用与之前相同的DataFrame,并使用apply
方法和lambda函数从属性’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
函数将属性’B’从属性’A’中减去。结果存储在一个名为’Difference’的新属性中。
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中执行属性间的逐个减法运算,具体取决于您的数据操作任务的特定需求。