首页 > 解决方案 > Pandas 中这种 df.drop() 行为的可能原因是什么?

问题描述

我有一个 Pandas 数据框df,它是其中df2的一个子集。当我尝试df根据 的索引值删除行时df2,我得到了一些有趣的数学,如下所示。什么可能导致这种行为?我完全误解了它的.index工作原理吗?

print(df.index)
    
Int64Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 
    353, 354, 355, 356, 357, 358, 359, 360, 361, 362], dtype='int64', length=4748)
print(df2.index)
    
Int64Index([ 0, 2, 5, 7, 9, 10, 12, 15, 17, 18, ... 
    106, 123, 130, 136, 196, 217, 220, 227, 232, 237], dtype='int64', length=448)
df = df.drop(index = df2.index)
print(df.index)

Int64Index([ 63, 65, 67, 74, 76, 78, 83, 84, 85, 87, ... 
    352, 353, 354, 355, 356, 357, 358, 359, 360, 361], dtype='int64', length=2116)

标签: pythonpandasdataframe

解决方案


根据编号系统,看起来有多个具有相同索引的记录。如果是这种情况,例如,106因为它位于df2而删除可能会导致从df. 检查数据框中的重复项,至少在索引中。


推荐阅读