我有一个函数
def return_true_false(a,b,c):
'''
returns true if stuff, else returns false
'''然后,我将此函数应用于Dataframe两次,以在结果上拆分dataframe
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)]但是,这会在每行上执行两次计算。我的问题是,有没有一种方法可以在一个函数上拆分这个数据集,并且只遍历该数据集一次?
发布于 2019-03-09 00:43:37
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]https://stackoverflow.com/questions/55067348
复制相似问题