如何删除熊猫数据框中的特定行

时间:2019-09-01 10:50:06

标签: pandas pyspark jupyter-notebook

我想删除具有重复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

Code Code Cont.

2 个答案:

答案 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])]