python - 选择线上方/下方的点
问题描述
我有以下数据集:
df = pd.DataFrame(np.random.rand(50,2), columns=list('AB'))
绘制数据
plt.scatter(x=df.A, y=df.B)
x = plt.axhline(y=0.4,c='k')
y = plt.axvline(x=0.4,c='k')
plt.plot([0.2, 0.3], [0, 0.4], c='k')
我想选择绿色区域中的点(见下图)。第二象限的点很容易选择,但第三象限的绿色区域的点却不好选。
这就是我在第二象限中选择点的方式:
df[( df['A'] < 0.4) & (df['B'] > 0.4)]
在此之后我被卡住了。
考虑到条件可能会变得复杂,比如处理曲线等。解决这个问题的最佳方法是什么?
打开任何建议。
解决方案
我建议你可以使用 functools:
import numpy as np
import functools
cr1 = functools.reduce(np.logical_and, [df.B < 0.4, df.A < 0.2])
cr2 = functools.reduce(np.logical_and, [df.B < 0.4, df.A > 0.2, df.B > (df.A-0.2)*4])
df_filtered = df[functools.reduce(np.logical_or, [cr1,cr2])]
推荐阅读
- python - 我正在尝试将 2d 列表项格式化为字符串
- ios - 除了检查水平精度值,我们如何确定 iOS 中的 GPS 信号强度
- javascript - 多行标题 - React Native
- c# - 在 C# Unity3D 中创建游戏但它不起作用
- python - 嵌套循环不打印第一个元素而是转到第二个元素?
- c# - (C# Winforms) 在 TextBox 上画一个圆
- vba - 如果计算机连接到 Bloomberg,如何签入 VBA 代码
- javascript - React Native 中的 FormData 抛出空白对象
- css - 如何创建适当的 flexbox 以使内容内的一列可滚动而另一列静态?
- reactjs - 使用 axios 调用作为图像的 src