Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python – Pandas DataFrameのデータを再形成する方法

Pandasでは、特定の列の値をカテゴリ化することで、DataFrameのデータを簡単に再形成(リシェイプ)できます。ここでは、「Result」列に含まれる「Pass(合格)」と「Fail(不合格)」という文字列の値を、数値形式に変換する方法を紹介します。

必要なライブラリのインポート

まず、Pandasライブラリをインポートします。

import pandas as pd

DataFrameの作成

次に、「Student」と「Result」の2つの列を持つDataFrameを作成します。

dataFrame = pd.DataFrame(
    {
        "Student": ['Jack', 'Robin', 'Ted', 'Scarlett', 'Kat'],
        "Result": ['Pass', 'Fail', 'Fail', 'Pass', 'Pass']
    }
)

map()関数でデータを再形成する

map()関数を使うことで、列内の値を別の値へ一括して変換できます。ここでは「Pass」を1に、「Fail」を0にマッピングします。

dataFrame['Result'] = dataFrame['Result'].map({'Pass': 1, 'Fail': 0})

サンプルコード

以下に完全なコード例を示します。

import pandas as pd

# DataFrameを作成
dataFrame = pd.DataFrame(
    {
        "Student": ['Jack', 'Robin', 'Ted', 'Scarlett', 'Kat'],
        "Result": ['Pass', 'Fail', 'Fail', 'Pass', 'Pass']
    }
)

print("DataFrame ...\n", dataFrame)

# 数値への変換(データの再形成)
dataFrame['Result'] = dataFrame['Result'].map({'Pass': 1, 'Fail': 0})

print("\nReshaped DataFrame ...\n", dataFrame)

実行結果

上記のコードを実行すると、以下のような出力が得られます。

DataFrame ...
     Result   Student
0     Pass      Jack
1     Fail     Robin
2     Fail       Ted
3     Pass  Scarlett
4     Pass       Kat

Reshaped DataFrame ...
     Result   Student
0        1      Jack
1        0     Robin
2        0       Ted
3        1  Scarlett
4        1       Kat

このように、map()関数を活用すれば、文字列のカテゴリデータを機械学習や集計処理に適した数値データへと効率的に変換できます。同様の手法は、replace()メソッドやapply()関数でも実現可能です。

  1. Pythonの文字列データからPandasでDataFrameを構築する方法

    本記事では、文字列型のデータを使ってpandasのDataFrameを構築する方法を解説します。pandasは通常、CSVファイルの読み込みに使われることが多いですが、実はファイルではなく文字列データからも同じようにDataFrameを作成できます。その際に活用するのが、Python標準ライブラリのioモジュールが提供するStringIOです。StringIOは文字列をファイルのように扱えるラッパーであり、これを使うことで、あたかもCSVリーダーからデータを読み込んでいるかのように処理できます。ここでは、各項目がセミコロン(;)で区切られた文字列データを例に、DataFrameの作成手順を見て

  2. Pandasで既存のDataFrameに新しい列を追加する3つの方法

    はじめにこのチュートリアルでは、Pythonのデータ分析ライブラリ「pandas」において、既存のDataFrameに新しい列を追加する方法を解説します。新しい列を追加するアプローチは複数あり、それぞれに特徴があります。ここでは代表的な3つの方法を、コード例と実行結果とともに順番に見ていきましょう。方法1:リストを使って追加する最もシンプルなのが、Pythonのリストをそのまま列として代入する方法です。以下の手順で行います。手順辞書を使ってDataFrameを作成する。新しい列のデータを含むリストを作成する。リストの長さが、すでにDataFrame内にあるデータの行数と一致している必要がある点