Python(pandas)で既存の列を利用してデータフレームに新しい列を作成する方法
データフレーム(DataFrame)は、データを行と列という表形式で格納する二次元のデータ構造です。SQLのテーブルやExcelのシートのようなイメージを持つと分かりやすいでしょう。
データフレームは、以下のコンストラクタを使用して作成できます。
pd.DataFrame(data, index, columns, dtype, copy)
以前の記事では、Seriesオブジェクトとして新しい列を作成し、元のデータフレームにインデックス付けして追加する方法を紹介しました。
今回は、データフレームにすでに存在する列を組み合わせて、新しい列を作成する方法を解説します。この手法は、既存の列に対して何らかの計算を実行し、その結果を新しい列として保存したい場合に非常に便利です。
サンプルコード
import pandas as pd
my_data = {'ab' : pd.Series([1, 8, 7], index=['a', 'b', 'c']),
'cd' : pd.Series([1, 2, 0, 9], index=['a', 'b', 'c', 'd']),
'ef' :pd.Series([56, 78, 32],index=['a','b','c'])}
my_df = pd.DataFrame(my_data)
print("The dataframe is :")
print(my_df)
my_df['gh'] = my_df['ab'] + my_df['ef']
print("After adding column 0 and 2 to the dataframe, :")
print(my_df)実行結果
The dataframe is :
ab cd ef
a 1.0 1 56.0
b 8.0 2 78.0
c 7.0 0 32.0
d NaN 9 NaN
After adding column 0 and 2 to the dataframe, :
ab cd ef gh
a 1.0 1 56.0 57.0
b 8.0 2 78.0 86.0
c 7.0 0 32.0 39.0
d NaN 9 NaN NaNコードの解説
必要なライブラリをインポートし、使いやすいようにエイリアス名を付けています。ここでは「pandas」を「pd」としています。
キーと値のペアからなる辞書を作成します。ここで値は実際にはSeriesデータ構造になっています。
このような辞書の値を複数作成します。
作成した辞書は、後ほど「pandas」ライブラリの「DataFrame」関数にパラメータとして渡されます。
辞書を引数として渡すことで、データフレームが生成されます。
新しい列「gh」をデータフレームに追加します。具体的には、「ab」列と「ef」列の値を足し合わせた結果を新しい列として格納しています。
最後に、データフレームをコンソールに出力して確認します。
ポイント:NaNについて
出力結果に含まれる「NaN」は「Not a Number」の略で、該当する[行, 列]の位置に有効な値が存在しないことを意味します。上記の例では、行「d」には「ab」列と「ef」列の値がないため、それらを加算した「gh」列もNaNになります。
このように、既存の列同士を演算するだけで、簡単に派生列(計算結果の列)をデータフレームに追加できます。売上の合計や平均値の計算など、実務でも頻繁に使われるテクニックなので、ぜひ覚えておきましょう。
-
TensorFlowとPythonを使ってモデルをトレーニングする方法
TensorFlowでは、fitメソッドを使ってモデルをトレーニングできます。このメソッドには、エポック数(データセット全体を何回繰り返して学習させるかを示す数値)とトレーニング用データを指定します。実行環境について本記事のコードはGoogle Colaboratory(Google Colab)で実行しています。Google Colabはブラウザ上でPythonコードを実行できるサービスで、面倒な環境構築が不要なうえ、GPU(グラフィックス処理ユニット)を無料で利用できるのが大きな特徴です。ColaboratoryはJupyter Notebookをベースに構築されています。モデルのトレーニ
-
TensorFlowとPythonを使ってデータセットを視覚化する方法
ここでは、花のデータセットを使用します。このデータセットは、Googleが提供するAPI経由でダウンロードでき、「get_file」メソッドにAPIのURLを引数として渡すことで、データを開発環境に取得できます。 ダウンロードしたデータは「matplotlib」ライブラリを使って視覚化できます。「imshow」メソッドを使用すると、コンソール上に画像を表示することが可能です。 TensorFlowとKerasの連携 関連記事: TensorFlowとは何か?KerasはどのようにTensorFlowと連携してニューラルネットワークを構築するのか? 本記事ではKeras Sequential