個別の列値に基づいた行の取得
データ操作シナリオでは、特定の列内の一意の値に基づいて行を抽出することが不可欠になります。この記事では、データ操作と分析用の人気のある Python ライブラリである Pandas を使用してこれを実現する方法を説明します。
問題ステートメント
COL1 と COL1 という 2 つの列を持つデータフレームを考えます。コル2。タスクは、COL2 の値が一意である行を取得することです。たとえば、以下のデータフレームがあるとします:
COL1 | COL2 |
---|---|
a.com | 22 |
b.com | 45 |
c.com | 34 |
e.com | 45 |
f.com | 56 |
g.com | 22 |
h.com | 45 |
望ましい出力は、COL2 の一意の値に基づいて行を取得することです:
COL1 | COL2 |
---|---|
a.com | 22 |
b.com | 45 |
c.com | 34 |
f.com | 56 |
解決策: Pandas を使用するdrop_duplicates() メソッド
Pandas ライブラリは、このタスクを実行するために、drop_duplicates() という便利なメソッドを提供します。引数に列名を指定することで、重複をチェックし、要件に基づいて特定の行を削除または保持できます。
たとえば、COL2 値に基づいてすべての重複行を削除するには、次のコードを使用します。
<code class="python">import pandas as pd df = pd.DataFrame({'COL1': ['a.com', 'b.com', 'c.com', 'e.com', 'f.com', 'g.com', 'h.com'], 'COL2': [22, 45, 34, 45, 56, 22, 45]}) df = df.drop_duplicates('COL2') # Displaying the result print(df)</code>
これにより、COL2 に一意の値を持つデータフレームが出力されます:
COL1 | COL2 |
---|---|
a.com | 22 |
b.com | 45 |
c.com | 34 |
f.com | 56 |
さらに、どの重複行を保持するかを制御する keep パラメーターを指定できます。デフォルトでは、最初に出現したもの (「first」) が保持されますが、最後に出現したもの (「last」) を保持したり、すべての重複を削除したり (「False」) することもできます。
<code class="python"># Keep first occurrence df = df.drop_duplicates('COL2', keep='first') # Keep last occurrence df = df.drop_duplicates('COL2', keep='last') # Remove all duplicates df = df.drop_duplicates('COL2', keep=False)</code>
以上がPandas で個別の列値に基づいて行を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。