pandas - 检查dataframe groupby中的非唯一值

Fab*_*nna 3 python pandas

我有这个简单的数据帧df:

a,b
1,2
1,3
1,4
1,2
2,1
2,2
2,3
2,5
2,5
Run Code Online (Sandbox Code Playgroud)

我想检查一下b每个组中是否有重复项a.到目前为止,我做了以下事情:

g = df.groupby('a')['b'].unique()
Run Code Online (Sandbox Code Playgroud)

返回:

a
1       [2, 3, 4]
2    [1, 2, 3, 5]
Run Code Online (Sandbox Code Playgroud)

但我想要的是一个列表,对于每个组中的a多个事件b.在这种情况下的预期输出将是:

a
1    [2]
2    [5]
Run Code Online (Sandbox Code Playgroud)

akr*_*run 9

我们可以用duplicated

print(df[df.duplicated()].drop_duplicates())
Run Code Online (Sandbox Code Playgroud)


ato*_*3ls 7

g=df.groupby('a')['b'].value_counts()
g.where(g>1).dropna()
Run Code Online (Sandbox Code Playgroud)

  • 第二行可以用`g [g> 1]`代替 (2认同)