如何在 Pandas 的数据框中获取行号?

新手上路,请多包涵

如何使用 Pandas 获取数据框中包含特定列中特定值的行数?例如,我有以下数据框:

      ClientID  LastName
0    34        Johnson
1    67        Smith
2    53        Brows

如何找到“LastName”列中包含“Smith”的行号?

原文由 sprogissd 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

请注意,数据框的索引可能是无序的,甚至根本不是数字。如果您不想使用当前索引而是按顺序对行重新编号,则可以使用 df.reset_index() 以及以下建议

获取所有匹配 ‘Smith’ 的索引

>>> df[df['LastName'] == 'Smith'].index
Int64Index([1], dtype='int64')

或者作为一个 numpy 数组

>>> df[df['LastName'] == 'Smith'].index.to_numpy()  # .values on older versions
array([1])

或者如果只有一个而你想要整数,你可以子集

>>> df[df['LastName'] == 'Smith'].index[0]
1

您可以将相同的布尔表达式与 .loc 一起使用,但除非您还想选择某个列,否则不需要它,当您只需要行号/索引时,这是多余的。

原文由 joelostblom 发布,翻译遵循 CC BY-SA 4.0 许可协议

df.index[df.LastName == 'Smith']

要么

df.query('LastName == "Smith"').index

将返回所有行索引,其中 LastNameSmith

 Int64Index([1], dtype='int64')

原文由 piRSquared 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题