"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())
背景:我对我的数据框 (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())