首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过比较行过滤pandas pandas数据帧

通过比较行过滤pandas pandas数据帧
EN

Stack Overflow用户
提问于 2021-02-09 18:56:13
回答 2查看 26关注 0票数 0

我有一个Df的测试样本,其中一些是重做(重做)现在我想只过滤原始的

代码语言:javascript
复制
col
a
b
a_redo
b_redo
c
d
e
f
g
g_redo

输出

代码语言:javascript
复制
col
a
b
g

这是我用来过滤重做示例的代码(_L _Q _S are redo prefix)

代码语言:javascript
复制
sample[sample['col'].str.contains("_L|_Q|_S")]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-09 18:59:38

仅按Series.str.endswith过滤redo值,按Series.str.replace删除,然后按Series.isin过滤列中的原始值

代码语言:javascript
复制
vals = sample.loc[sample['col'].str.endswith("redo"), 'col'].str.replace('_redo','')
df = sample[sample['col'].isin(vals)]
print (df)
  col
0   a
1   b
8   g

带着你的面具:

代码语言:javascript
复制
vals = sample.loc[sample['col'].str.contains("_L|_Q|_S"), 'col'].str.replace("_L|_Q|_S",'')
df = sample[sample['col'].isin(vals)]
票数 0
EN

Stack Overflow用户

回答已采纳

发布于 2021-02-09 18:59:38

代码语言:javascript
复制
mask_redo = sample['col'].str.contains("_L|_Q|_S")
mask_orig = - mask_redo
sample_orig = sample.loc[mask_orig]

基本上,通过在选择包含重做后缀的字符串的掩码前放置减号,可以反转选择:现在有了一个掩码,它选择了不包含重做后缀的字符串,即原始样本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66117575

复制
相关文章

相似问题

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