복붙노트

[PYTHON] pandas는 DataFrame에서 주어진 색인의 위치를 ​​얻습니다.

PYTHON

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 개의 하위 질문 :

해결법

  1. ==============================

    1.귀하의 첫 번째 질문 :

    귀하의 첫 번째 질문 :

    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를 사용할 수 있습니다.

    매우 첫 번째 또는 마지막 행에서 일치하는 것에주의하십시오. :)

  2. from https://stackoverflow.com/questions/28837633/pandas-get-position-of-a-given-index-in-dataframe by cc-by-sa and MIT license