考虑一个Pandas数据框:
import pandas as pd
df = pd.DataFrame({
'a': pd.Series([1,1,1,2,3]),
'b': pd.Series(list('asdfg'))
})
我想返回列a
的重复值的所有行,包括第一行或最后一行。我可以用
df[df['a'].duplicated() | df['a'].duplicated(take_last=True)]
有更好的方法吗?
答案 0 :(得分:2)
您可以count
出现a
并返回重复行values>1
。
In [25]: df[(df.groupby('a').transform('count')>1).values]
Out[25]:
a b
0 1 a
1 1 s
2 1 d