merge_asof
次のコードを実行したときの出力として、正しいものを1つ選べ。
import pandas as pd
a = pd.DataFrame({"t": [1, 5]})
b = pd.DataFrame({"t": [0, 4, 6], "v": [10, 40, 60]})
print(pd.merge_asof(a, b, on="t")["v"].tolist())
- A
[40, 60] - B
[10, 60] - C
[nan, nan] - D
[10, 40]
正解と解説を見る
正解:D
pd.merge_asof は、時刻などの近似的な一致で結合する。イベントと、その直前の状態を結合するときに使う。キーは、整列済みである必要がある。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import pandas as pd` | — |
| 2 | `a = pd.DataFrame({"t": [1, 5]})` | a = DataFrame(2行×1列) |
| 3 | `b = pd.DataFrame({"t": [0, 4, 6], "v": [10, 4…` | b = DataFrame(3行×2列) |
| 4 | `print(pd.merge_asof(a, b, on="t")["v"].tolist…` | a = DataFrame(2行×1列), b = DataFrame(3行×2列) |
| 結果 | 実際の出力 | [10, 40] |


- A
誤り。直後ではなく、直前の行。
- B
誤り。5 の直前は 4。
- C
誤り。直前の行が見つかる。
- D
正しい。
merge_asofは、キーが等しくなくても、直前の最も近い行を結合する。1 は 0 の行、5 は 4 の行。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。