python - 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)
解决方案
根据编号系统,看起来有多个具有相同索引的记录。如果是这种情况,例如,106
因为它位于df2
而删除可能会导致从df
. 检查数据框中的重复项,至少在索引中。
推荐阅读
- spring - Jasypt中这三个有什么区别?
- android - 为什么声明的字段包括 $change 和 serialVersionUID
- android - 解密时出现 AEADBadTagException
- java - Spring Integration JPA inbound channel adapter with transactional poller Java configuration
- css - 具有水平滚动和固定宽度元素的 Flexbox
- sql - 我如何需要对这个查询进行 GROUP 才能聚合 MAX
- javascript - 从函数中获取返回值
- mysql - 服务器时区值“KST”无法识别:如何修复服务器端?
- python - 如何在新数据集上实现模型
- javascript - 检查数组 onchange 中的重复值