You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas切片中添加行?已有筛选切片需追加其他条件数据

回答你的DataFrame筛选追加问题

当然两种方式都能实现需求,但具体用哪种取决于你的场景,我给你拆解一下:

1. 直接扩展selection的方式(可行,但要注意细节)

你可以把cond2筛选出的数据直接合并到已有的selection里,但要注意pandas的append()方法已经被弃用,现在官方推荐用pd.concat()来做:

# 先筛选出cond2的结果
cond2_result = df[df.apply(cond2, axis=1)]
# 合并到selection
selection = pd.concat([selection, cond2_result], ignore_index=True)

⚠️ 这里要注意:如果有行同时满足cond1和cond2,合并后会出现重复的行。如果不想保留重复数据,可以加上drop_duplicates():

selection = pd.concat([selection, cond2_result]).drop_duplicates(ignore_index=True)

2. 更高效的方式:合并条件一次筛选

其实如果你的需求只是把满足cond1 或者 cond2的行都选出来,完全不需要分两次筛选再合并,直接把两个条件用逻辑或组合,一次遍历DataFrame就能搞定,效率更高:

# 用lambda把两个条件合并
selection = df[df.apply(lambda row: cond1(row) or cond2(row), axis=1)]

这种方式只需要对df做一次apply操作,比分两次apply再合并节省一半的遍历时间,数据量大的时候优势很明显。

什么时候需要先生成selection2再合并?

如果你的cond2筛选逻辑依赖于selection处理后的某些中间结果(比如你在「部分逻辑」里对selection做了修改,然后需要基于修改后的结果去筛选cond2),那这种情况下就必须先生成selection2,再和处理后的selection合并。

总结一下:如果只是单纯的合并两个条件的筛选结果,优先用合并条件一次筛选的方式;如果有依赖中间逻辑的需求,再选择先生成selection2再合并的方式。

内容的提问来源于stack exchange,提问作者 GhostKU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:35:38