为了简便起见,请考虑一个具有两列的数据框。第一列是id
,它是键。第二列名为code
不是键,但是两个条目具有相同值的情况非常少。
我想找到具有相同code
值但当然id
不同的行。
如何在熊猫中做到这一点?
答案 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
或者如果需要的列表将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]