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

2024-04-19 02:16:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我是用手机发帖的,所以很抱歉没有提供代码。我的组织不允许我访问此网站。你知道吗

我一直无法做到以下几点。你知道吗

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

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

注意:我已经能够使用for循环来存档这个文件,但是这需要很多时间。还有很多列,所以我必须在dataframe中指定列名。你知道吗


Tags: 代码dfreturn网站dolistcol2col3
1条回答
网友
1楼 · 发布于 2024-04-19 02:16:06

我认为您需要^{}axis=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)

为了提高性能,最好尽可能通过矢量化函数重写函数。你知道吗

相关问题 更多 >