背景:我对我的数据框(df)感到非常困惑,当我进行一些简单的分析时,它会为名为“ID”的列中的特定值生成随机行(特别是当 ID == 42 时)。因此,我开始做一些故障排除。
当我尝试列出 ID = 42 的所有行时,我会:
data=df.loc[df['ID'] == 42]
在这个名为“data”的新变量中,行看起来是正确的。但是,当我手动滚动原始数据框 df 时(例如,在 Spyder 上的变量资源管理器中),我可以看到 ID=42 的更多行没有打印到“数据”。
然后,为了仔细检查为什么“ID”值显示出这种奇怪的行为,我做了
print(df['ID'].unique())
而且,奇怪的是,我明白了:
[ 20. 31. 42. 42. 84.142.198.248.280.288.352.378.459.498.] -- 请注意 42 是重复的!
我的问题是,当我使用.unique()函数时怎么会有两个42?我认为它应该输出所有 unique 值?如果我能更好地理解这一点,我就可以开始理解随之而来的其余问题......
我是否遗漏了“独特”的运作方式?
诗。我的文件很大,所以我没有包含它们,但如果我需要提供更多(数字)上下文,请告诉我。
谢谢!
将我的评论移至答案,因为它解决了问题:
print(df['ID'].astype(int).unique())
发生的情况是存储的数据是字符串值,那么我们该怎么做?