繁体   English   中英

将不同的功能组合成一个Python

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM