如何在Pandas数据框架中减去两列
在这篇文章中,我们将讨论如何用Python在pandas数据框架中减去两列。
使用中的数据框架:
方法1:直接法
这是getitem方法 syntax( [] ),它让你使用列名直接访问数据框架的列。
例子:减去Pandas数据框架中的两列
import numpy as np
import pandas as pd
data = np.arange(0, 20).reshape(4, 5)
df1 = pd.DataFrame(data,
index=['Row 1', 'Row 2', 'Row 3', 'Row 4'],
columns=['Column 1', 'Column 2', 'Column 3',
'Column 4', 'Column 5'])
# using our previous example
# now let's subtract the values of two columns
df1['Column 1'] - df1['Column 2']
输出:
方法2:定义一个函数
我们可以创建一个专门用于减去列的函数,将列数据作为参数,然后使用apply方法将其应用于整个列的所有数据点。
例子:减去Pandas数据框架中的两列
import numpy as np
import pandas as pd
def diff(a, b):
return b - a
data = np.arange(0, 20).reshape(4, 5)
df = pd.DataFrame(data,
index=['Row 1', 'Row 2', 'Row 3', 'Row 4'],
columns=['Column 1', 'Column 2', 'Column 3',
'Column 4', 'Column 5'])
df['Difference_2_1'] = df.apply(
lambda x: diff(x['Column 2'], x['Column 2']), axis=1)
输出 :
方法3:使用apply()
由于我们要执行的操作很简单,我们可以你可以直接使用apply()方法,而不用明确定义一个函数。提供轴参数为1来访问列。
语法:
s.apply(func, convert_dtype=True, args=())
参数:
- func: .apply接收一个函数并将其应用于pandas系列的所有值。
- convert_dtype:按照函数的操作,转换dtype。
- args=():传递给函数的额外参数,而不是系列。
返回类型:应用函数/操作后的潘达系列。
例子:减去Pandas数据框架中的两列
import pandas as pd
import numpy as np
data = np.arange(0, 20).reshape(4, 5)
df = pd.DataFrame(data,
index=['Row 1', 'Row 2', 'Row 3', 'Row 4'],
columns=['Column 1', 'Column 2', 'Column 3',
'Column 4', 'Column 5'])
df['diff_3_4'] = df.apply(lambda x: x['Column 3'] - x['Column 4'], axis=1)
df
输出:
方法4:使用分配方法
assign()方法给DataFrame分配新的列,返回一个新的对象(一个副本),新的列被添加到原来的列中。
例子:减去Pandas数据框架中的两列
import numpy as np
import pandas as pd
data = np.arange(0, 20).reshape(4, 5)
df = pd.DataFrame(data,
index=['Row 1', 'Row 2', 'Row 3', 'Row 4'],
columns=['Column 1', 'Column 2', 'Column 3',
'Column 4', 'Column 5'])
df = df.assign(diff_1_5=df['Column 1'] - df['Column 5'])
df
输出 :