assign による列の追加
次のコードを実行したときの出力として、正しいものを1つ選べ。
import pandas as pd
df = pd.DataFrame({"a": [1, 2]})
print(df.assign(b=df["a"] * 2).columns.tolist(), df.columns.tolist())
- A
['a', 'b'] ['a', 'b'] - B
['a'] ['a', 'b'] - C
['b'] ['a'] - D
['a', 'b'] ['a']
正解と解説を見る
正解:D
assign は新しい列を追加した DataFrame を返し、元のデータは変更しない。メソッドチェーンで書きやすい。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import pandas as pd` | — |
| 2 | `df = pd.DataFrame({"a": [1, 2]})` | df = DataFrame(2行×1列) |
| 3 | `print(df.assign(b=df["a"] * 2).columns.tolist…` | df = DataFrame(2行×1列) |
| 結果 | 実際の出力 | ['a', 'b'] ['a'] |

- A
誤り。元の
dfは変わらない。 - B
誤り。結果が逆。
- C
誤り。列
aも残る。 - D
正しい。
assignは元のDataFrameを変更せず、新しいDataFrameを返す。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。