pandas获取给定索引在DataFram中的位置

2024-04-29 06:42:38 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个这样的数据帧:

df
     A  B
5    0  1
18   2  3
125  4  5

其中5, 18, 125是索引

我想在某个索引之前(或之后)得到该行。例如,我有索引18(例如,通过执行df[df.A==2].index),我想在之前获取该行,但我不知道该行有5作为索引。

2个子问题:

  • 如何获取索引18的位置?类似于df.loc[18].get_position(),它将返回1,这样我可以在df.iloc[df.loc[18].get_position()-1]之前到达行
  • 有没有另一种解决方案,有点像grep的选项-C-A-B

Tags: 数据dfgetindex选项position解决方案grep
1条回答
网友
1楼 · 发布于 2024-04-29 06:42:38

对于你的第一个问题:

base = df.index.get_indexer_for((df[df.A == 2].index))

或者

base = df.index.get_loc(18)

要得到周围的人:

mask = pd.Index(base).union(pd.Index(base - 1)).union(pd.Index(base + 1))

我使用索引和联合来删除重复项。您可能想保留它们,在这种情况下,您可以使用np.concatenate

小心第一行或最后一行的火柴:)

相关问题 更多 >