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

Python Pandas入門:DataFrameの列から一意の値を取得・カウントする方法

PandasのDataFrameから特定の列の一意(ユニーク)な値を取得したい場合はunique()メソッドを使用します。また、一意な値の個数を数えたい場合はnunique()メソッドを使用します。

この記事では、サンプルデータを使いながら、両メソッドの基本的な使い方を解説します。

1. ライブラリのインポート

まず、必要なライブラリをインポートします。

import pandas as pd

2. サンプルDataFrameの作成

次に、「Car」「Place」「Units」の3つの列を持つDataFrameを作成します。このデータには重複した値が含まれている点に注目してください。

dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Audi', 'BMW', 'Lexus', 'Tesla', 'Lexus', 'Mustang'],
        "Place": ['Delhi', 'Bangalore', 'Hyderabad', 'Chandigarh', 'Pune', 'Mumbai', 'Jaipur'],
        "Units": [100, 150, 50, 110, 90, 120, 80]
    }
)

3. 一意の値を取得・カウントする

「Car」列に対してunique()で一意の値を取得し、nunique()でその件数をカウントします。

print("\n列から取得した一意の値 ...\n", dataFrame['Car'].unique())
print("\n列の一意な値の個数 ...\n", dataFrame['Car'].nunique())

完全なサンプルコード

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

import pandas as pd

# DataFrameを作成
dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Audi', 'BMW', 'Lexus', 'Tesla', 'Lexus', 'Mustang'],
        "Place": ['Delhi', 'Bangalore', 'Hyderabad', 'Chandigarh', 'Pune', 'Mumbai', 'Jaipur'],
        "Units": [100, 150, 50, 110, 90, 120, 80]
    }
)

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

# 列から一意の値を取得
print("\n列から取得した一意の値 ...\n", dataFrame['Car'].unique())
print("\n列の一意な値の個数 ...\n", dataFrame['Car'].nunique())

実行結果

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

DataFrame ...
         Car       Place  Units
0      BMW       Delhi    100
1     Audi   Bangalore    150
2      BMW   Hyderabad     50
3    Lexus  Chandigarh    110
4    Tesla        Pune     90
5    Lexus      Mumbai    120
6  Mustang      Jaipur     80

列から取得した一意の値 ...
['BMW' 'Audi' 'Lexus' 'Tesla' 'Mustang']

列の一意な値の個数 ...
5

まとめ

このように、unique()を使えばDataFrameの列から重複を除いた値を配列として取得でき、nunique()を使えば一意な値の総数を簡単に把握できます。データ分析の前処理やカテゴリカルデータの確認など、日常的なデータ操作で頻繁に活用される便利なメソッドなので、ぜひ覚えておきましょう。

  1. 【Python入門】リストから一意の値(重複しない要素)だけを抽出して出力する方法

    リストが与えられたとき、その中から重複を除いた一意の値(ユニークな要素)だけを取り出して表示するのが、この記事の目的です。Pythonを使えば、初心者でも簡単に実装できる定番の処理なので、ぜひマスターしておきましょう。実行例入力:A = [1, 2, 3, 4, 2, 1, 9] 出力:[1, 2, 3, 4, 9]リスト内に同じ値が複数回現れていても、出力されるのはそれぞれ1回だけです。アルゴリズムステップ1:ユーザーからリストを入力として受け取る。 ステップ2:空のリストを作成する。 ステップ3:元のリストの全要素を順番に走査する。 ステップ4:その要素がすでに一意のリストに存在するかどう

  2. 【Python】文字列から整数値を抽出・取得する方法をわかりやすく解説

    Pythonでは、正規表現(reモジュール)を使うことで、文字列の中から出現順にすべての整数値を抽出し、リストとして取得できます。以下のコード例をご覧ください。 正規表現ですべての整数値を抽出する import re s = 12 hello 52 19 some random 15 number # 数字部分を抽出し、int型に変換する list_of_nums = [int(n) for n in re.findall(r\d+, s)] print(list_of_nums) 出力結果 [12, 52, 19, 15] re.findall(r\d+, s) は、文字列 s から連続し