はじめに
この実験では、pandas DataFrame クラスの copy() メソッドの使い方を学びます。copy() メソッドを使うと、元の DataFrame を変更することなく、DataFrame オブジェクトのコピーを作成できます。このドキュメントでは、copy() メソッドの構文とパラメータを説明し、その使い方を示すサンプルコードを提供します。
VM のヒント
VM の起動が完了したら、画面の左上隅をクリックして Notebook タブに切り替え、Jupyter Notebook を起動して演習を行います。
Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。
学習中に問題が発生した場合は、Labby にお問い合わせください。セッション終了後にフィードバックを提供してください。迅速に対応し、問題を解決いたします。
DataFrame を作成する
まず、pandas ライブラリをインポートして DataFrame オブジェクトを作成する必要があります。
import pandas as pd
df = pd.DataFrame({'A': ['a', 'b', 'c'], 'B': ['d', 'e', 'f']})
print(df)
出力:
A B
0 a d
1 b e
2 c f
copy() メソッドを使って DataFrame をコピーする
次に、copy() メソッドを使って DataFrame オブジェクトのコピーを作成できます。
df1 = df.copy()
print(df1)
出力:
A B
0 a d
1 b e
2 c f
コピーした DataFrame を変更する
コピーした DataFrame を変更しても、元の DataFrame には影響しません。
df1['A'] = df1['A'].replace(['b'], 'x')
print(df1)
print(df)
出力:
A B
0 a d
1 x e
2 c f
A B
0 a d
1 b e
2 c f
deep=False で copy() を使ったシャローコピー
デフォルトでは、copy() メソッドはディープコピーを行い、データとインデックスのコピーを持つ新しいオブジェクトを作成します。ただし、deep=False パラメータを使ってシャローコピーを作成することもできます。
df1 = df.copy(deep=False)
df1['A'] = df1['A'].replace(['b'], 'x')
print(df1)
print(df)
出力:
A B
0 a d
1 x e
2 c f
A B
0 a d
1 x e
2 c f
まとめ
この実験では、pandas の DataFrame クラスにおける copy() メソッドの使い方を学びました。copy() メソッドを使うことで、元の DataFrame を変更することなく、DataFrame オブジェクトのコピーを作成できます。copy() メソッドを使ってコピーを作成する方法と、コピーした DataFrame を変更する方法を検討しました。また、ディープコピーかシャローコピーを作成するかを制御する deep パラメータについても学びました。デフォルトではディープコピーが行われますが、deep=False を設定することでシャローコピーを作成できます。copy() メソッドを理解することで、元のデータに影響を与えることなく DataFrame オブジェクトを操作できます。