将数据帧行与python/pandas成对比较(位置索引器超出范围)
我需要将每一行与列值上的前一行进行比较(感兴趣的列的名称是将数据帧行与python/pandas成对比较(位置索引器超出范围),python,pandas,dataframe,Python,Pandas,Dataframe,我需要将每一行与列值上的前一行进行比较(感兴趣的列的名称是value),如果它们具有相同的值,我想删除其中一行 name value Mark True Anna False Steven True Karl False Peter False Laure True 所以我想删除Karl所在的行,因为他的值在下一行重复 所以我测试了这段代码: def clean_limites(): for (idx1, row1), (idx2, row2) in pair
value
),如果它们具有相同的值,我想删除其中一行
name value
Mark True
Anna False
Steven True
Karl False
Peter False
Laure True
所以我想删除Karl所在的行,因为他的值在下一行重复
所以我测试了这段代码:
def clean_limites():
for (idx1, row1), (idx2, row2) in pairwise(limites.iterrows()):
if row1["value"]==row2["value"]:
limites.drop(limites.iloc[row1], axis=1)
print "succefully dropped row1"
return clean_limites
我的成对函数
:
def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iterable)
next(b, None)
return izip(a, b)
我有以下输出错误:
succefully dropped row1
succefully dropped row1
succefully dropped row1
succefully dropped row1
succefully dropped row1
succefully dropped row1
succefully dropped row1
succefully dropped row1
succefully dropped row1
succefully dropped row1
succefully dropped row1
succefully dropped row1
IndexError: positional indexers are out-of-bounds
我是python新手,欢迎任何帮助 用于执行比较并筛选出行:
In [141]:
df[df['value']!= df['value'].shift()]
Out[141]:
name value
0 Mark True
1 Anna False
2 Steven True
3 Karl False
5 Laure True