在条件中使用排序切片 Pandas Dataframe

马特

这对我来说有点棘手。假设我有这个数据框:

Group    Mag    Morph
  1     -21.1     S
  1     -20.3     E
  1     -22.0     E
  2     -18.1     E
  2     -23.6     S
  2     -21.9     S
  3     -19.4     S
  3     -19.1     E

我只想选择最低“Mag”对应于“Morph”的“S”的组(即相同的“组”)。

例如,这里:

  • 在第 1 组中,最低值是 -22.0,对应于“E”变形(因此未采用该组),

  • 对于第 2 组,它是 -23.6,所以“S”(被选中的组),

  • 对于第 3 组,-19.4,所以是“S”,所以是组。

因此它会选择

Group    Mag    Morph
  2     -18.1     E
  2     -23.6     S
  2     -21.9     S
  3     -19.4     S
  3     -19.1     E

有人可以帮助我吗?

耶斯列

您可以使用过滤器idxmin列的校验值Morph每组:

print (df.groupby('Group').filter(lambda x: x.loc[x.Mag.idxmin(), 'Morph'] == 'S'))
   Group   Mag Morph
3      2 -18.1     E
4      2 -23.6     S
5      2 -21.9     S
6      3 -19.4     S
7      3 -19.1     E

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章