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()を使えば一意な値の総数を簡単に把握できます。データ分析の前処理やカテゴリカルデータの確認など、日常的なデータ操作で頻繁に活用される便利なメソッドなので、ぜひ覚えておきましょう。
-
【Python入門】リストから一意の値(重複しない要素)だけを抽出して出力する方法
リストが与えられたとき、その中から重複を除いた一意の値(ユニークな要素)だけを取り出して表示するのが、この記事の目的です。Pythonを使えば、初心者でも簡単に実装できる定番の処理なので、ぜひマスターしておきましょう。実行例入力:A = [1, 2, 3, 4, 2, 1, 9] 出力:[1, 2, 3, 4, 9]リスト内に同じ値が複数回現れていても、出力されるのはそれぞれ1回だけです。アルゴリズムステップ1:ユーザーからリストを入力として受け取る。 ステップ2:空のリストを作成する。 ステップ3:元のリストの全要素を順番に走査する。 ステップ4:その要素がすでに一意のリストに存在するかどう
-
【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 から連続し