Pandas DataFrame のコピーメソッド

PythonPythonBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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