pandas在DataFrame中获取给定索引的位置
假设我有一个像这样的DataFrame:
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]
- 有另一种解决办法,有点像选择
-C
,-A
或者-B
使用grep?
回答:
对于第一个问题:
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
注意第一行或最后一行的匹配:)
以上是 pandas在DataFrame中获取给定索引的位置 的全部内容, 来源链接: utcz.com/qa/423133.html