2017-12-13 18 views
-2

パンダのDataFrameの特定の条件を満たすインデックスを見つけようとしました。パンダ - 各行の条件を満たすインデックスを見つける

たとえば、私たちは以下のデータフレーム

enter image description here

ので、結果は

enter image description here

して説明するように

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

というインデックスを見つけるを持っています私は終わったforループを使用して作業しますが、私はこの仕事を賢明にするより効率的な方法があると信じています。

ありがとうございました。

私のコードは

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

ですが、ループのための大規模なデータセットのために遅すぎます。

+2

はStackOverflowのへようこそ。データのスクリーンショットへのリンクを投稿しないでください。代わりにサンプルデータをインラインで入力してください。これにより、人々があなたを助けやすくなり、将来リンクが死んでしまう可能性を防ぐことができます。 –

+2

すべての人がそれを実行して変更を加えることができるように、最小限の作業例を作成します。 – furas

答えて

0

方法次のtry、:)

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

関連する問題