Pandas DataFrame のコピーメソッド

PythonBeginner
オンラインで実践に進む

はじめに

この実験では、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 オブジェクトを操作できます。