PandasのDataframeから一意な値を取得する方法

スポンサーリンク

今回は、PythonでDataFrameから一意な値を取得する方法に焦点を当てます。

では、さっそく始めましょう

スポンサーリンク

Python DataFrame とは何ですか?

PythonのPandasモジュールは、大量のデータを保存し、操作するための様々なデータ構造と関数を提供しています。

DataFrameはPandasモジュールが提供するデータ構造で、巨大なcsvファイルやexcelファイルなど、2次元以上の大きなデータセットを扱うことができます。

データフレームに大量のデータを格納することができるので、冗長な値や繰り返される値を含むデータセットからユニークなデータ値を見つける状況にしばしば出くわします。

このようなときに、pandas.dataframe.unique() 関数が登場します。

次のセクションでは、unique()関数の機能に焦点を当てましょう。

Python pandas.unique() 関数でデータフレームから一意な値を取得する

pandas.unique()関数は、データセットに存在するユニークな値を返す関数です。

これは基本的にハッシュテーブルに基づいたテクニックを使って、データフレーム/シリーズデータ構造内に存在する値のセットから冗長でない値を返します。

一意性関数の役割について、例題を通して理解してみましょう。

次のような値を含むデータセットがあるとします。

ここで、unique()関数を適用すると、次のような結果が得られます: 1,2,3,4. これで、データセットの一意な値を簡単に見つけることができました。

では、次にpandas.unique()関数の構造について説明します。

Python の unique() 関数の構文

以下の構文を見てください。

pandas.unique(data)

上記の構文は、データが1次元の場合に便利です。

これは、1次元のデータ値(系列データ構造)からユニークな値を表します。

しかし、データが1次元以上の行と列を含んでいる場合はどうでしょうか?はい、我々は以下の構文でそのためのソリューションを持っている – 。

pandas.dataframe.column-name.unique()

この構文を使うと、データセットの特定のカラムから一意な値を見つけることができる。

一意関数が適切な結果を得るには、データがカテゴリ型であることが望ましいです。

さらに、データはデータセットに含まれる順番に表示されます。

Pandasシリーズを使ったPythonのunique()関数

以下の例では、冗長な値を含むリストを作成しました。

さらに、リストは1次元であるため、系列データ構造に変換しています。

最後に、データからユニークな値を取得するために unique() 関数を適用しています。

例えば、以下の様になります。

lst = [1,2,3,4,2,4]
df = pandas.Series(lst)
print("Unique values:
"
)
print(pandas.unique(df))

結果は以下の通りです。

Unique values:
[1 2 3 4]

Python unique()関数とPandas DataFrame

まず、以下のようにデータセットを環境にロードします。

import pandas
BIKE = pandas.read_csv("Bike.csv")

データセットはこちらで確認できます。

pandas.dataframe.nunique()関数`は、データフレームの各カラムに存在するユニークな値を表します。

BIKE.nunique()

結果は以下の通りです。

season          4
yr              2
mnth           12
holiday         2
weathersit      3
temp          494
hum           586
windspeed     636
cnt           684
dtype: int64

さらに、以下のコードを使って、’season’カラムに存在するユニークな値を表現しています。

BIKE.season.unique()

結果は以下の通りです。

array([1, 2, 3, 4], dtype=int64)

まとめ

ここまでで、このトピックは終了です。

もし何か疑問があれば、お気軽にコメントください。

Pythonに関連するこのような記事のために、ご期待ください、そして、それまでは、幸せな学習!

タイトルとURLをコピーしました