【发布时间】:2021-09-14 13:16:28
【问题描述】:
正如标题所说,我正在尝试使用以前的排名来过滤掉当前的
这是我开始 df 的示例
df = pd.DataFrame({
'rank': [1, 1, 2, 2, 3, 3],
'x': [0, 3, 0, 3, 4, 2],
'y': [0, 4, 0, 4, 5, 5],
'z': [1, 3, 1.2, 2.95, 3, 6],
})
print(df)
# rank x y z
# 0 1 0 0 1.00
# 1 1 3 4 3.00
# 2 2 0 0 1.20
# 3 2 3 4 2.95
# 4 3 4 5 3.00
# 5 3 2 5 6.00
这就是我想要的输出
output = pd.DataFrame({
'rank': [1, 1, 2, 3],
'x': [0, 3, 0, 2],
'y': [0, 4, 0, 5],
'z': [1, 3, 1.2, 6],
})
print(output)
# rank x y z
# 0 1 0 0 1.0
# 1 1 3 4 3.0
# 2 2 0 0 1.2
# 5 3 2 5 6.00
基本上我想要发生的是,如果之前的排名有任何行带有 x、y(+- 1 双向)和 z(+- .1)来删除它。
因此,对于排名 1 的行,排名 2 中的任意行具有 x = (-1-1)、y = (-1-1)、z= (.9-1.1) 或 x = (2 -5), y = (3-5), z= (2.9-3.1) 我想去掉它
提前感谢所有帮助!
【问题讨论】:
-
不应该保留最后一行吗? z 上的条件不满足
-
你说得对,我忘了补充
-
好的,我想我的解决方案应该适合你,请告诉我
标签: python python-3.x pandas