当列中有多个具有重复值的行时选择第一行

Abh*_*til 5 python dataframe pandas

当一列中有多个具有重复值的行时,我想选择第一行。

例如:

import pandas as pd
df = pd.DataFrame({'col1':['one', 'one', 'one', 'one', 'one', 'one', 'one', 'one'], 
                   'col2':['ID=ABCD1234', 'ID=ABCD1234', 'ID=ABCD1234', 'ID=ABCD5678', 
                           'ID=ABCD5678', 'ID=ABCD5678', 'ID=ABCD9102', 'ID=ABCD9102']})
Run Code Online (Sandbox Code Playgroud)

熊猫数据框如下所示:

print(df)
  col1         col2
0  one  ID=ABCD1234
1  one  ID=ABCD1234
2  one  ID=ABCD1234
3  one  ID=ABCD5678
4  one  ID=ABCD5678
5  one  ID=ABCD5678
6  one  ID=ABCD9102
7  one  ID=ABCD9102
Run Code Online (Sandbox Code Playgroud)

我希望第 0 行、第 3 行和第 6 行被选中并作为新数据帧输出。

预期输出:

      col1         col2
    0  one  ID=ABCD1234
    3  one  ID=ABCD5678
    6  one  ID=ABCD9102
Run Code Online (Sandbox Code Playgroud)

fil*_*den 9

只需按行的值进行分组并用于first()选择第一行:

df.groupby('col2').first()
Run Code Online (Sandbox Code Playgroud)

您也可能决定按多列进行分组:

df.groupby(['col1', 'col2']).first()
Run Code Online (Sandbox Code Playgroud)


Joe*_*Joe 8

您可以使用:

df.drop_duplicates(subset = ['col2'], keep = 'first', inplace = True) 
Run Code Online (Sandbox Code Playgroud)