"unique" 如何在数据框中显示重复值?

How can "unique" show duplicate values in a dataframe?

背景:我对我的数据框 (df) 感到非常困惑,当我做一些简单的分析时,它会为我名为 'ID' 的列中的特定值生成随机行(具体来说,当 ID == 42 ).因此,我开始进行一些故障排除。

当我尝试列出 ID = 42 的所有行时,我这样做:

data=df.loc[df['ID'] == 42]

在这个名为 'data' 的新变量中,行看起来是正确的。但是,当我手动滚动原始数据框 df 时(例如,在 Spyder 上的变量资源管理器中),我可以看到 ID=42 的更多行未打印到 'data'.

然后,为了仔细检查 'ID' 值显示这种奇怪行为的原因,我做了

print(df['ID'].unique())

奇怪的是,我明白了:

[ 20. 31. 42. 42.84.142.198.248.280.288.352.378.459.498.] -- 注意42是重复的!

我的问题是,我用.unique()函数怎么会有两个42?我认为它应该输出所有 unique 值?如果我能更好地理解这一点,我就能开始理解随之而来的其他问题...

我是否遗漏了一些有关 'unique' 工作原理的信息?

Ps。我的文件很大,所以我没有包含它们,但如果我需要提供更多(数字)上下文,请告诉我。

谢谢!

将我的评论移至答案,因为它解决了问题:

print(df['ID'].astype(int).unique())