python - 如何在 Python 中选择数据框的某些行?
问题描述
我有一个看起来像这样的熊猫数据框:
x_cor
y_cor
893.200012 1
893.299988 17
893.400024 41
893.500000 39
893.599976 40
893.700012 36
893.799988 2
893.900024 13
894.000000 44
894.099976 43
894.200012 74
894.299988 88
894.400024 78
894.500000 132
894.599976 180
894.700012 178
我想要做的是根据条件选择某些行,并从中创建2个不同的数据框(其中一个由满足条件的行组成,另一个由不符合条件的行组成) t 满足条件)。条件是x_cor
每一行的值是否大于前面和后面的x_cor
值。
例如,第 3 行893.400024 41
满足条件,因为上一行的 x_cor 为 17,下一行的 x_cor 为 39,均小于 41。
我认为如果我使用带有iloc
or的循环将是低效的ix
。有什么更好的方法来做到这一点?
解决方案
利用shift
df.loc[(df.x_cor > df.x_cor.shift(1)) & (df.x_cor > df.x_cor.shift(-1))]
y_cor x_cor
2 893.400024 41
4 893.599976 40
8 894.000000 44
11 894.299988 88
14 894.599976 180
推荐阅读
- reactjs - React Native 无法分配给对象的只读属性“exports”
- python - Tensorflow 层将输入映射到回归图
- python - 如何在 Python 中使用 Google Cloud Firestore 检索子集合?
- python - 循环的有效方法
- java - 如何解决 PostgreSQL 的连接问题
- ubuntu - 如何更改 Ubuntu.exe 使用的 rootfs 位置
- swift - 在普通 UIView 下约束集合视图
- sql - SQL 合并现有表中的列
- python - 不知道为什么我会收到此错误“SyntaxError: invalid token”?
- python - 在 Python 中读/写 .bdf 文件并过滤行