Pandas DataFrame の列から一意の値を取得する
unique() 関数は、列上の重複する値をすべて削除し、複数の同じ値に対して 1 つの値を返します。この記事では、列から一意の値を取得する方法について説明します。 パンダのデータフレーム 。
重複した要素を含む Pandas データフレームの作成
リストの辞書を使用してサンプルの Pandas データフレームを作成します。列名は次のとおりです。 A、B、C、D、E 重複した要素がある。
Python3
# Import pandas package> import> pandas as pd> # create a dictionary with five fields each> data> => {> > 'A'> : [> 'A1'> ,> 'A2'> ,> 'A3'> ,> 'A4'> ,> 'A5'> ],> > 'B'> : [> 'B1'> ,> 'B2'> ,> 'B3'> ,> 'B4'> ,> 'B4'> ],> > 'C'> : [> 'C1'> ,> 'C2'> ,> 'C3'> ,> 'C3'> ,> 'C3'> ],> > 'D'> : [> 'D1'> ,> 'D2'> ,> 'D2'> ,> 'D2'> ,> 'D2'> ],> > 'E'> : [> 'E1'> ,> 'E1'> ,> 'E1'> ,> 'E1'> ,> 'E1'> ]}> # Convert the dictionary into DataFrame> df> => pd.DataFrame(data)> |
Pandas DataFrame の列から一意の値を取得する
以下に、このデータフレーム内の列の一意の値を取得できる例をいくつか示します。
- 「B」列の一意の値を取得する
- 「E」列の一意の値を取得する
- 列内の固有の値の数を取得する
- set() を使用して列から重複値を削除する
- pandas.concat() メソッドと Unique() メソッドの使用
- Series.drop_duplicates() の使用
「B」列の一意の値を取得する
この例では、 unique()> 方法。結果として得られる一意の値は次のとおりです。 ['B1', 'B2', 'B3', 'B4']> 。
Python3
# Import pandas package> import> pandas as pd> # Convert the dictionary into DataFrame> df> => pd.DataFrame(data)> # Get the unique values of 'B' column> df.B.unique()> |
出力
array(['B1', 'B2', 'B3', 'B4'], dtype=object)
「E」列のパンダの一意の値を取得する
この例では、辞書から pandas DataFrame を作成し、次のメソッドを使用して「E」列から一意の値を取得します。 unique()> 方法。結果として得られる一意の値は次のとおりです。 ['E1']> 。
Python3
# Import pandas package> import> pandas as pd> # Convert the dictionary into DataFrame> df> => pd.DataFrame(data)> # Get the unique values of 'E' column> df.E.unique()> |
出力
array(['E1'], dtype=object)
列内の固有の値の数を取得する
この例では、辞書から pandas DataFrame を作成し、NaN 値を除いた「C」列の一意の値の数を計算して出力します。結果は 3 で、列「C」に 3 つの一意の値があることを示します。
Python3
# Import pandas package> import> pandas as pd> # Convert the dictionary into DataFrame> df> => pd.DataFrame(data)> # Get number of unique values in column 'C'> df.C.nunique(dropna> => True> )> |
出力
3
set() を使用して列から重複値を削除する
この例では、辞書から pandas DataFrame を作成し、 set()> 関数 列「C」から一意の値を抽出し、重複を排除します。結果として得られるセットは、 {'C1', 'C2', 'C3'}> 、列「C」の一意の値を表します。
Python3
# Import pandas package> import> pandas as pd> # Convert the dictionary into DataFrame> df> => pd.DataFrame(data)> # Use set() to eliminate duplicate values in column 'C'> unique_values_set> => set> (df[> 'C'> ])> # Print the unique values> print> (unique_values_set)> |
出力
{'C1', 'C2', 'C3'} pandas.concat() メソッドと Unique() メソッドの使用
この例では、辞書から pandas DataFrame を作成し、次を使用してすべての列の一意の値を連結します。 pd.concat()> 。結果の NumPy 配列を印刷すると、列「A」から「E」までの一意の値がすべて表示されます。
Python3
# Import pandas package> import> pandas as pd> # Convert the dictionary into DataFrame> df> => pd.DataFrame(data)> # Use pd.concat() to concatenate all columns and then apply unique()> unique_values_all_columns> => pd.concat([df[col].unique()> for> col> in> df.columns])> # Print the unique values> print> (unique_values_all_columns)> |
出力
['A1' 'A2' 'A3' 'A4' 'A5' 'B1' 'B2' 'B3' 'B4' 'C1' 'C2' 'C3' 'D1' 'D2' 'E1']
Series.drop_duplicates() の使用
この例では、辞書からパンダ データフレームを作成し、列「A」と「D」から重複を削除します。 drop_duplicates()> 方法 。結果として得られる DataFrame を印刷すると、列「A」と「D」に一意の値が表示され、「D」から重複が削除された NaN 値が表示されます。
Python3
# Import pandas package> import> pandas as pd> # Convert the dictionary into DataFrame> df> => pd.DataFrame(data)> # Use drop_duplicates() to remove duplicates from columns 'A' and 'D'> df[> 'A'> ]> => df[> 'A'> ].drop_duplicates()> df[> 'D'> ]> => df[> 'D'> ].drop_duplicates()> # Print the DataFrame after removing duplicates from columns 'A' and 'D'> print> (df)> |
出力
A B C D E 0 A1 B1 C1 D1 E1 1 A2 B2 C2 D2 E1 2 A3 B3 C3 NaN E1 3 A4 B4 C3 NaN E1 4 A5 B4 C3 NaN E1