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

时间:2019-06-05 11:24:44

标签: python python-3.x pandas rows

为了简便起见,请考虑一个具有两列的数据框。第一列是id,它是键。第二列名为code不是键,但是两个条目具有相同值的情况非常少。

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

如何在熊猫中做到这一点?

1 个答案:

答案 0 :(得分:1)

我相信您需要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

或者如果需要的列表将groupbylist一起使用:

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]