データフレームの特定の列と比較したいユーザー定義の数値があります。
指定された数値xに最も近い5つの数値を(dfの特定の列、たとえばdf.numに)含むデータフレームの行を返したいと思います。
ループなしでこれを行うための最良の方法についての提案は大歓迎です。
データフレームの特定の列と比較したいユーザー定義の数値があります。
指定された数値xに最も近い5つの数値を(dfの特定の列、たとえばdf.numに)含むデータフレームの行を返したいと思います。
ループなしでこれを行うための最良の方法についての提案は大歓迎です。
pythonとpandasは初めてですが、これをお勧めします。
#make random df and get number
df = pd.DataFrame({'c1':0,'c2':np.random.random(100)})
x = .25
#find differences and sort
diff = df.c2.apply(lambda z: abs(x-z))
diff.sort()
#get the index for the 5 closest numbers
inds = diff.index[:5]
inds
次に、5 つの最も近い数値の元の df からのインデックスの場所を取得します。お役に立てれば!