[英]Combining different functions into One , Python
我需要将不同的功能组合为一个,并在主要功能本身中使用(那些单独功能的)应用功能。 我的情况比较复杂,因此我将使用一个基本示例。
假设我有一个由数字组成的数据。 我们称之为“ MathData”。 包含2个数字的列称为“数字”。
这是我的个人职能:
def add(nm1,nm2):
sum = nm1+nm2
return sum
MathData['sum'] = Mathdata['digits'].apply(add) #gives me new column called "sum" with the sum of each observation in it.
同样,
def diff(nm1,nm2):
subtract = nm1-nm2
return subtract
def mul(nm1,nm2):
multiply = nm1 * nm2
return multiply
def div(nm1,nm2):
divide = nm1/nm2
return divide
MathData['difference'] = Mathdata['digits'].apply(diff)
MathData['product'] = Mathdata['digits'].apply(mul)
MathData['quotient'] = Mathdata['digits'].apply(div)
因此,我将获得总和,差异,乘积,商等不同的列。
我希望所有这些都成为1个函数,每个值在不同的列中。
def mathop(nm1,nm2):
sum = nm1+nm2
diff = nm1-nm2
mul = nm1*nm2
div = nm1/nm2
return sum,diff,mul,div
上面的函数将给我所有用逗号分隔的列中的值。 有没有一种方法可以将每个应用程序放在不同的列下?
我不知道pandas
模块,但是在纯Python中,您可以执行以下操作:
import operator
mathops = {'sum': operator.sum,
'diff': operator.sub,
'mul': operator.mul,
'div': operator.div}
for op_name, op in mathops:
MathData[op_name] = MathData['digits'].apply(op)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.