传递数据框的多个列以获取值并将其分配给新列

时间:2018-12-17 08:39:33

标签: python pandas dataframe

我正在使用移动设备发布信息,因此对未提供代码表示歉意。我的组织不允许我访问此网站。

我无法实现以下目标。

SomeFunction(col1, col2): 
            #Do somethinng
            Return list

df[col3],  df[col4]  = df[[col1, col2]].applymap(SomeFunction)

注意:我已经可以使用for循环将其存档,但是这会花费很多时间。还有更多列,因此我必须在数据数据框中指定列名称。

1 个答案:

答案 0 :(得分:0)

我认为您需要applyaxis=1来进行按行的处理,但是在后台也存在循环,因此性能的大提高是有问题的:

def SomeFunction(col1, col2): 
    L = [1,2]
    return pd.Series(L)

df[['col3', 'col4']]  = df.apply(lambda x: SomeFunction(x['col1'], x['col2']), axis=1)

为了提高性能,最好尽可能使用熊猫矢量化函数重写函数。