首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用布尔函数在布尔上拆分pandas数据帧

使用布尔函数在布尔上拆分pandas数据帧
EN

Stack Overflow用户
提问于 2019-03-09 00:37:14
回答 1查看 18关注 0票数 1

我有一个函数

代码语言:javascript
运行
复制
def return_true_false(a,b,c):
    '''
    returns true if stuff, else returns false
    '''

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

代码语言:javascript
运行
复制
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)]

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

EN

Stack Overflow用户

回答已采纳

发布于 2019-03-09 00:43:37

IIUC,运行一次并将结果赋值(例如mask ),然后使用布尔索引:

代码语言:javascript
运行
复制
mask = df.apply(lambda x: return_true_false(x[a],x[b],x[c]),axis=1)

df_True = df[mask]
df_false = df[~mask]
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55067348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档