正在pandas.csv[Python]中删除行



我遇到了与panda相关的问题,我的行没有全部删除,只有前21行被删除。删除行有限制吗?我需要删除600多行,而不是21行。这是我的代码:

i = 0
index = 0
for x in dataAlkuperainen:
i += 1
try:
dataAlkuperainen.drop([int(finalListMatchingID[index])],axis=0,inplace=True)
print("Dropped idx: " + str(index) + " ID " + str(finalListMatchingID[index]))
index += 1
except KeyError as k: 
#print(e) 
index += 1

输出:

Dropped idx: 0 ID 28
Dropped idx: 1 ID 139
Dropped idx: 2 ID 156
Dropped idx: 4 ID 226
Dropped idx: 5 ID 234
Dropped idx: 6 ID 244
Dropped idx: 7 ID 318
Dropped idx: 8 ID 320
Dropped idx: 9 ID 325
Dropped idx: 10 ID 343
Dropped idx: 11 ID 350
Dropped idx: 13 ID 444
Dropped idx: 14 ID 456
Dropped idx: 15 ID 528
Dropped idx: 16 ID 563
Dropped idx: 17 ID 579
Dropped idx: 18 ID 586
Dropped idx: 19 ID 594
Dropped idx: 20 ID 678

您不需要运行for循环来删除一堆行。如果您有一个要删除的索引列表,只需从数据帧中调用drop方法并将索引列表传递给它,例如:

dataframe.drop(index=list_of_indices)

你可以在这里阅读更多关于drop方法的信息。

感谢您的快速回答。我想明白了。我写了以下内容:

rows = dataAlkuperainen.index[[finalListMatchingID]]
dataAlkuperainen.drop(rows, inplace=True)

这用更少的代码行解决了问题。

最新更新