使用boolian函数在boolian上拆分数据帧

2024-04-19 11:36:39 发布

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

我有一个函数

def return_true_false(a,b,c):
    '''
    returns true if stuff, else returns false
    '''

然后,我将此函数应用于数据帧两次,以在结果上拆分数据帧

df_True =  df[df.apply(lambda x: return_true_false(x[a],x[b],x[c]),axis=1)]
df_false =  df[df.apply(lambda x: not return_true_false(x[a],x[b],x[c]),axis=1)]

但是,这会对每行执行两次计算。 我的问题是,有没有一种方法可以在一个函数上拆分这个数据集,并且只遍历数据集一次


Tags: 数据lambda函数falsetruedfreturnif
1条回答
网友
1楼 · 发布于 2024-04-19 11:36:39

IIUC,运行它一次分配结果(例如给mask),然后使用布尔索引:

mask = df.apply(lambda x: return_true_false(x[a],x[b],x[c]),axis=1)

df_True = df[mask]
df_false = df[~mask]

相关问题 更多 >