2017-12-13 16 views
-2

팬더 DataFrame의 특정 조건을 만족하는 인덱스를 찾으려고했습니다.팬더 - 각 행의 조건을 만족하는 인덱스 찾기

예를 들어, 우리는 다음과 같은 dataframe에게

enter image description here

을 가지고

argmin(j) df['A'].iloc[j] >= (df['A'].iloc[i] + 3) for all i 

이 때문에 결과가

enter image description here

에 의해 주어집니다 있도록 인덱스를 찾을 수 나는 끝냈다. for 루프를 사용하여 작업하지만이 작업을 능률적으로 수행 할 수있는 방법이 있다고 생각합니다.

답장을 보내 주셔서 감사합니다. 루프는 대형 데이터 세트에 대한 너무 느립니다에 대한

내 코드,

for i in range(len(df)): 
    df['B'].iloc[i] = df[df2['A']>= df2['A'].iloc[i]+1].index[0] 

하지만. 방법에 따라

+2

에 오신 것을 환영합니다. 데이터 캡쳐 화면에 대한 링크를 게시하지 마세요. 대신 예제 데이터를 인라인으로 포함하십시오. 이렇게하면 사람들이 쉽게 당신을 도울 수 있으며 미래에 링크가 죽을 가능성을 방지 할 수 있습니다. –

+2

은 최소한의 작업 예제를 만들어서 모든 사람들이 그것을 실행할 수 있고 수정할 수 있습니다. – furas

답변

0

시도 :)에 StackOverflow에

import pandas as pd 
import numpy as np 

df = pd.DataFrame({'A': [1,3,5,8,10,12]}) 
b = pd.DataFrame(df.values - (df['A'].values + 3), index=df.index) 
df['B'] = b.where(b >= 0).idxmin() 
df 
+0

감사합니다! 그것은 나를 많이 돕는다! – user155214