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

【Python Pandas】unique()メソッドで単一の列から一意の値を抽出する方法

Pandas DataFrameの特定の列から重複を除いた一意の値を取得したい場合は、unique()メソッドを使います。例えば、従業員データを管理するDataFrameでは、同名の従業員が存在する可能性があるため、名前が重複することがあります。そのような場合に、unique()を使えば重複のない従業員名の一覧を簡単に抽出できます。

ライブラリのインポート

まず、必要なライブラリをインポートします。ここでは、pdというエイリアスを設定しています。

import pandas as pd

DataFrameの作成

次に、サンプル用のDataFrameを作成します。ここでは「EmpName」(従業員名)と「Zone」(担当エリア)の2つの列を持つデータを用意しました。

dataFrame = pd.DataFrame(
    {
        "EmpName": ['John', 'Ted', 'Jacob', 'Scarlett', 'Ami', 'Ted', 'Scarlett'],
        "Zone": ['North', 'South', 'South', 'East', 'West', 'East', 'North']
    }
)

一意の値を取得する

列「EmpName」から一意の従業員名を取得するには、以下のように記述します。

dataFrame['EmpName'].unique()

完全なコード例

以下は、ここまでの手順をまとめた完全なコードです。

import pandas as pd

# DataFrameを作成
dataFrame = pd.DataFrame(
    {
        "EmpName": ['John', 'Ted', 'Jacob', 'Scarlett', 'Ami', 'Ted', 'Scarlett'],
        "Zone": ['North', 'South', 'South', 'East', 'West', 'East', 'North']
    }
)

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

# 単一の列から一意の値を取得
print(f"\nUnique Name of Employees = {dataFrame['EmpName'].unique()}")

実行結果

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

DataFrame ...
     EmpName   Zone
0      John  North
1       Ted  South
2     Jacob  South
3  Scarlett   East
4       Ami   West
5       Ted   East
6  Scarlett  North
Unique Name of Employees = ['John' 'Ted' 'Jacob' 'Scarlett' 'Ami']

補足:unique()とnunique()の違い

なお、一意の値そのものを配列として取得したい場合はunique()を使用しますが、一意の値の「個数」だけを知りたい場合はnunique()メソッドが便利です。

# 一意の値の個数を取得
count = dataFrame['EmpName'].nunique()
print(count)  # 出力: 5

また、出現回数を確認したい場合はvalue_counts()を使うことで、各値ごとの件数を集計できます。用途に応じてこれらのメソッドを使い分けると、データ分析の効率が大きく向上します。

  1. 【Python】Pandasデータフレームのマルチレベル列インデックスからレベルを削除する方法

    マルチレベル列インデックスからレベルを削除する方法 Pandasのマルチレベル(階層型)列インデックスから特定のレベルを取り除くには、columns.droplevel()メソッドを使用します。引数に削除したいレベルの位置(0始まりの整数)やレベル名を渡すだけで、指定した階層を簡単に除去できます。なお、マルチインデックス自体はMultiIndex.from_tuples()を使うことで、タプルのリストから列方向に作成できます。 以下では、実際の手順に沿って、列インデックスのレベルを削除する流れを解説します。 ステップ1:列方向にマルチインデックスを作成する まず、MultiIndex.fro

  2. Pythonでリストから一意の値(重複しない要素)を抽出する3つの方法

    Pythonのリストは、[](角括弧)の中に複数の要素を格納できるデータ構造です。異なるデータ型を混在させることもでき、重複した値を含むこともあります。本記事では、リストから重複を除いた一意の値だけを取り出す方法を、代表的な3つのアプローチに分けて解説します。方法1:append() と not in を使う方法まず空の新しいリストを作成し、元のリストの要素を1つずつ確認しながら、まだ新しいリストに存在しない場合のみ追加していく方法です。forループと not in 条件を組み合わせることで、要素の存在チェックを行い、未登録の要素だけを追加できます。コード例def catch_unique(l