python - 如何使用 pandas 数据框函数在样本上维护具有条件的某些行
问题描述
我有一个这样的数据框:
SeqNumber X Y Z
0 12 4 5 5
1 12 7 5 -8
2 13 10 2 1
3 16 4 8 7
...
我想将对应的 SeqNumbers 识别为 X_min、X_max 和 Y_min、Y_max 之间的样本中的正 Z 值,然后将这些 SeqNumbers 保留在整个数据帧上。如何使用 .loc 来做到这一点?
如果我定义 x_min = 3、x_max = 8、y_min = 4 和 y_max = 6。只会选择前 2 行。然后在这些行中,只有第一行有一个正 Z。所以为了结束我的问题,我想用第一行的 SeqNumber 维护所有行(之前选择的行)。这样,代码将产生一个带有原始前两行的数据框
解决方案
计算 x_min、x_max、y_min、y_maxagg
并搜索符合条件的行:
x_min = 3
x_max = 8
y_min = 4
y_max = 6
idx = df.loc[df['Z'].gt(0) & df['X'].between(x_min, y_max)
& df['Y'].between(y_min, y_max),
'SeqNumber'].values
out = df.loc[df['SeqNumber'].isin(idx)]
输出:
>>> idx
array([12])
>>> out
SeqNumber X Y Z
0 12 4 5 5
1 12 7 5 -8
推荐阅读
- flutter - 加载列表时如何处理巨大的数组?
- mongodb - Flapdoodle 因 Spring Boot v2.3.3 的“授权失败”错误而失败
- odoo - 如何在odoo 13中创建一个新标签?
- php - 在 ModelBehavior 中未检测到 Controller 的更改
- confluent-platform - 汇合云 | Java Avro 序列化 | 值中的垃圾字符
- pagination - 是否有关于使用 GraphQL 实现偏移分页的任何标准或约定?
- reactjs - React Native 选项卡导航器重新渲染屏幕组件
- google-sheets - 使用 =importXM 从表中提取 URL
- sql - 如何将字符串“2020-09-1015:45:59+10:00”存储到日期列中
- rpm - 用于 RHEL 7 的 llvm-toolset-7-clang rpm 安装