首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python 3:删除表中的重叠

Python 3:删除表中的重叠
EN

Stack Overflow用户
提问于 2019-03-03 13:01:10
回答 5查看 1.3K关注 0票数 2

我有一个表(程序的简化输出),需要过滤:

代码语言:javascript
运行
复制
id   hit from   to value
A   hit1    56  102 0.00085
B   hit2    89  275 0.00034
B   hit3    240 349 0.00034
C   hit4    332 480 3.40E-15
D   hit5    291 512 3.80E-24
D   hit6    287 313 0.00098
D   hit7    381 426 0.00098
D   hit8    287 316 0.0029
D   hit9    373 422 0.0029
D   hit10   514 600 0.0021

对于每个id,df应该按照from进行排序,如果有重叠的点击,则保持较低的value

到目前为止,这是我的代码,它首先由from启动,然后由value启动

代码语言:javascript
运行
复制
import pandas
df = pandas.read_csv("table", sep='\s+', names=["id", "hit", "from", "to", "value"])
df.sort_values(['from', "value"]).groupby('id')

但是,如何检查重叠(fromto) &删除得分较高的重叠?

这是我的预期输出:

代码语言:javascript
运行
复制
id   hit from   to valu
A   hit1    56  102 0.00085
C   hit4    332 480 3.40E-15
D   hit5    291 512 3.80E-24
D   hit10   514 600 0.0021

请注意,id B有两个相同值的重叠命中,因此这两个条目都将被踢出。

EN

Stack Overflow用户

发布于 2019-04-16 11:17:12

如果您不介意代码中的多行代码,那么这样的代码应该可以工作,我想.(这里是python新手.) 来源

代码语言:javascript
运行
复制
df.sort_values(['from', "value"]).groupby('id')
df.drop_duplicates(subset=['id', 'value'], keep=False, inplace=True)

参数设置为false,因为您根本不想要重复的行。

,其结果是:

代码语言:javascript
运行
复制
  id    hit from   to     value
0  A   hit1   56  102   0.00085
3  C   hit4  332  480  3.40E-15
4  D   hit5  291  512  3.80E-24
9  D  hit10  514  600    0.0021

和要摆脱混乱的索引列:

代码语言:javascript
运行
复制
df.reset_index(drop=True, inplace=True)

,其结果是:

代码语言:javascript
运行
复制
  id    hit from   to     value
0  A   hit1   56  102   0.00085
1  C   hit4  332  480  3.40E-15
2  D   hit5  291  512  3.80E-24
3  D  hit10  514  600    0.0021

PS:这是我第一次给出答案,所以请温柔一点。而且我还在学英语。

票数 2
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54969074

复制
相关文章

相似问题

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