Pandas DataFrame の assign メソッド

PythonPythonBeginner
今すぐ練習

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

はじめに

この実験では、Python の Pandas ライブラリの assign() メソッドの使い方を学びます。assign() メソッドを使うと、DataFrame に新しい列を追加でき、元の列と新しい列すべてを含む新しい DataFrame オブジェクトが返されます。新しい列を直接割り当てることも、関数や式を使って割り当てることもできます。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化できません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション終了後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

まず、必要なライブラリである pandasnumpy をインポートしましょう。

import pandas as pd
import numpy as np

DataFrame を作成する

次に、サンプル データを含む DataFrame を作成しましょう。辞書から DataFrame を作成するために、pd.DataFrame() 関数を使用します。

data = {'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]}
df = pd.DataFrame(data)
print(df)

出力は以下のようになります。

   A   B
0  1   6
1  2   7
2  3   8
3  4   9
4  5  10

DataFrame に新しい列を割り当てる

さて、assign() メソッドを使って DataFrame に新しい列を割り当てましょう。列名と値を指定することで、新しい列を直接割り当てることができます。

df = df.assign(C=[11, 12, 13, 14, 15])
print(df)

出力は以下のようになります。

   A   B   C
0  1   6  11
1  2   7  12
2  3   8  13
3  4   9  14
4  5  10  15

関数を使って新しい列を割り当てる

assign() メソッドに関数を渡すことで、DataFrame に新しい列を割り当てることもできます。この関数は DataFrame を入力として受け取り、新しい列の値を生成するための計算を行います。C の値に 1 を加えた値を計算する新しい列 D を割り当てましょう。

df = df.assign(D=lambda x: x['C'] + 1)
print(df)

出力は以下のようになります。

   A   B   C   D
0  1   6  11  12
1  2   7  12  13
2  3   8  13  14
3  4   9  14  15
4  5  10  15  16

DataFrame に複数の列を割り当てる

assign() メソッドを複数回使用することで、DataFrame に複数の列を割り当てることができます。DataFrame に2つの新しい列 EF を割り当てましょう。列 EA の値に 1 を加えた値を計算し、列 FB の値から 1 を引いた値を計算します。

df = df.assign(E=lambda x: x['A'] + 1).assign(F=lambda x: x['B'] - 1)
print(df)

出力は以下のようになります。

   A   B   C   D   E   F
0  1   6  11  12   2   5
1  2   7  12  13   3   6
2  3   8  13  14   4   7
3  4   9  14  15   5   8
4  5  10  15  16   6   9

まとめ

この実験では、Pandas の assign() メソッドを使って DataFrame に新しい列を追加する方法を学びました。新しい列を直接、または関数や式を使って割り当てることができます。このメソッドを使うことで、元のデータを変更することなく、DataFrame を簡単に操作して変更することができます。