我有一个问题。
我想删除数据框中的行,但是我的功能是删除错误的行。抱歉,这不是最好的代码,因为我刚刚开始,并且不断的打印是我的错误搜索。
#Reduce by a factor
firstrow = int(in_csv.loc[in_csv.index[0]].name)
lastrow = int(in_csv.loc[in_csv.index[-1]].name)
for i in range (firstrow, lastrow+1):
division = (i/reduce_factor)
print (str(i) + " is " + str(division))
print ("Division" + str(math.modf(division)))
if ((math.modf(division)[0]) != 0):
print (i)
print (in_csv.iloc[i])
i_drop = in_csv.loc[in_csv.index[i]].name
print ("drop: " + str(i_drop))
in_csv.drop([i], inplace=True)
结果如下
5 is 2.5
Division(0.5, 2.0)
5
Time 5/11/20 12:01:32 AM
number 1
Name: 7, dtype: object
drop: 7
对于第5行的计算,它删除第7行,对于第7行,它是10,对于第3行,它是第4行,对于第1行,它是正确的。因此,对于每一下降的行,故障都会增加一行。
我怎么了?
我想您应该收集要删除的行的索引并执行删除之后循环。
但是请确保我必须了解您的DataFrame的内容,至少初始部分,包括相关行。