ハムザWaheed:
私はパンダデータフレームのインデックス内の最も近い値に基づいてデータを選択しようとしています。私は、Excelからファイルを読み込むと、このようなデータフレームをmultiindexed:
df = df.set_index(['Year', 'delta', 'ix'])
その結果、このような小さなものになります。
Year delta ix Temp
2010 6 4 34
5.1 38
7 4.5 36
3.7 37
2011 6 4 37
5.1 35
7 4.5 38
3.7 41
2012 6 4 43
5.1 39
7 4.5 38
3.7 37.5
私は次の最も近い値を探したいので、私は検索したい値は、このデータフレームには存在しません。たとえば、私は2011年に6.7と4.9のIXのデルタのための一時値を見つけたいが、これらの値は、データフレームではないので、私はこのケースでは7のデルタある最も近い指数と温度値を取得する必要がありますし、 5.1のIX。だから、私はからデータを取るの行があり、
Year delta ix Temp
2010 7 5.1 39
前もって感謝します。
ダニエル・ゲフィン:
私は容易になるだろう列に仕事にインデックスをリセットします。
そして、あなたは彼らのターゲットからの列の距離を合計して使用することができますidxminの最も近い行のIDを取得する機能を:
df = df.reset_index()
closest_row_id = ((df["Year"] - wanted_year).abs() + (df["delta"] - wanted_delta).abs() + (df["ix"] - wanted_ix).abs()).idxmin()
closest_temperature_row = df.loc[closest_row_id]
# If you only want the temperature you can do:
# closest_temp = df.loc[closest_row_id, "Temp"]
df = df.set_index(['Year', 'delta', 'ix'])