unstack
次のコードを実行したときの出力として、正しいものを1つ選べ。
import pandas as pd
df = pd.DataFrame({"r": ["a", "a", "b"], "c": ["x", "y", "x"], "v": [1, 2, 3]})
print(df.set_index(["r", "c"])["v"].unstack(fill_value=0).values.tolist())
- A
[[1, 2], [3, nan]] - B
[[1, 2], [3, 0]] - C
[[1, 3], [2, 0]] - D
[[1, 2, 3]]
正解と解説を見る
正解:B
unstack は、階層インデックスの内側のレベルを列に展開する。stack は逆の変換。pivot と同様の結果を、インデックスから作れる。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import pandas as pd` | — |
| 2 | `df = pd.DataFrame({"r": ["a", "a", "b"], "c":…` | df = DataFrame(3行×3列) |
| 3 | `print(df.set_index(["r", "c"])["v"].unstack(f…` | df = DataFrame(3行×3列) |
| 結果 | 実際の出力 | [[1, 2], [3, 0]] |

- A
誤り。
fill_value=0で埋められる。 - B
正しい。階層インデックスの内側(
c)を列に展開する。組み合わせのないセルは 0 で埋める。 - C
誤り。行と列が入れ替わっている。
- D
誤り。展開された形になる。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。