我想删除具有重复ID的9行,获取它们的索引,然后尝试删除,但是删除后的长度显示714行被删除。熊猫指数不是唯一的吗?我该如何正确执行
我搜索了熊猫数据框,并确定了要删除的行。写下ID,然后尝试删除,但似乎出了点问题。 我怀疑熊猫索引不是唯一的,并且超出了预期的行数。 如何创建唯一索引或如何正确使用索引?
len(CrimeClean) #result 690130
CrimeCleanV1 = CrimeClean.drop([5650, 3725, 6373, 2469, 7751, 7058, 3859, 3640, 3141])
#Validation, row 7751 should not appear
CrimeCleanV1[CrimeCleanV1.Crime_ID == "56882eb6d444d5677ac90c06a0582fe70fe1fd932fd5bd902a5aa4a2aa363bf3"]
#Only one row instead of two appeared as intended
len(CrimeCleanV1) #result 689416
答案 0 :(得分:0)
您在评论中写道:它们并不完全相同。 因此,我假设将某行标记为重复项的条件是列表 列,应该是唯一的。
因此,您可以通过传递 subset 参数来删除重复项,而只需 此列列表。
要确定的另一点是实际上要复制哪些行 已删除(保持参数)-离开/先出现 最后次出现/ 全部删除。
关于数据的另一个重要测试是运行:
CrimeClean[CrimeClean.index in [...]]
替换为 [...] 与 CrimeClean.drop 中使用的列表相同。
然后您将看到,传递的id值存在多少行。
答案 1 :(得分:0)
您可以这样做:
CrimeCleanV1.reset_index(drop=True,inplace=True)
然后
CrimeCleanV1[~CrimeCleanV1.index.isin([List with your row numbers where now they are indexes])]