【发布时间】:2019-04-07 18:39:54
【问题描述】:
我有一个包含许多几乎相同行的数据框。我需要编写一个代码,允许在一对(或 3 或 4 组)行中选择其中一个行,这些行在名称、姓氏、V1 和 P1 上相似但在 V2 和 P2 上不同,然后删除不需要的行。需要维护的行将由以下条件指定:如果 P1 = P2,则必须保留该行,如果 P1 P2,则应保留 P2 最大的行.
id Name Surname V1 P1 V2 P2
15 John Smith 0.80 4 0.75 2
16 John Smith 0.80 4 1.00 3
17 John Smith 0.80 5 0.75 2
18 John Smith 0.80 5 1.00 3
19 John Smith 0.75 2 0.75 2
20 John Smith 0.75 2 1.00 3
我期望的输出如下所示:
id Name Surname V1 P1 V2 P2
16 John Smith 0.80 4 1.00 3
18 John Smith 0.80 5 1.00 3
19 John Smith 0.75 2 0.75 2
有什么简单的方法吗?
扩展数据集
id Name Surname V1 P1 V2 P2
194 Lisa Paul 0,1 1 0,2 1
195 Lisa Paul 0,1 1 0,4 5
196 Lisa Paul 0,1 4 0,5 1
197 Lisa Paul 0,1 4 0,1 5
198 Lisa Paul 0,1 2 0,1 1
199 Lisa Paul 0,1 2 0,4 5
201 Lisa Paul 0,1 3 0,2 1
202 Lisa Paul 0,1 3 0,1 5
203 Lisa Paul 0,1 5 0,3 1
204 Lisa Paul 0,1 5 0,2 5
205 Lisa Paul 0,1 6 0,2 1
206 Lisa Paul 0,1 6 0,1 5
【问题讨论】:
-
虽然您在 P1 和 P2 上的条件很清楚,但其余的则不是。据说名字和姓氏必须相同。 V1 和 V2 到底怎么样?
-
嗨!谢谢你的评论。我跳过了这个信息,因为这对是由 P1 确定的。所以 V1 在每一对中都是相同的。 V2 可能会有所不同。希望对您有所帮助!