在 Pandas 中查找具有相同列值的数据框行

Fra*_*Boi 6 python rows python-3.x pandas

为了方便起见,考虑一个具有 2 列的数据框。第一列是id关键。第二列,namedcode不是键,但两个条目具有相同值的情况非常罕见。

我想找到具有相同code值但当然不同的行id

我怎样才能在熊猫中做到这一点?

jez*_*ael 12

我相信您需要DataFrame.duplicated按列和订购使用所有欺骗DataFrame.sort_values

df = pd.DataFrame({
        'id':[1,2,3,4,5,6],
        'code':list('abcdac'),

})

print (df)
   id code
0   1    a
1   2    b
2   3    c
3   4    d
4   5    a
5   6    c

df1 = df[df.duplicated('code', keep=False)].sort_values('code')
print (df1)
   id code
0   1    a
4   5    a
2   3    c
5   6    c
Run Code Online (Sandbox Code Playgroud)

或者如果需要列表groupby使用list

df2 = df[df.duplicated('code', keep=False)].groupby('code')['id'].apply(list).reset_index()
print (df2)
  code      id
0    a  [1, 5]
1    c  [3, 6]
Run Code Online (Sandbox Code Playgroud)