如何在Pandas DataFrame中迭代行对?
例如:
content = [(1,2,[1,3]),(3,4,[2,4]),(5,6,[6,9]),(7,8,[9,10])]
df = pd.DataFrame( content, columns=["a","b","interval"])
print df
输出:
a b interval
0 1 2 [1, 3]
1 3 4 [2, 4]
2 5 6 [6, 9]
3 7 8 [9, 10]
现在我想做的事情类似于:
for (indx1,row1), (indx2,row2) in df.?
print "row1:\n", row1
print "row2:\n", row2
print "\n"
这应该输出
row1:
a 1
b 2
interval [1,3]
Name: 0, dtype: int64
row2:
a 3
b 4
interval [2,4]
Name: 1, dtype: int64
row1:
a 3
b 4
interval [2,4]
Name: 1, dtype: int64
row2:
a 5
b 6
interval [6,9]
Name: 2, dtype: int64
row1:
a 5
b 6
interval [6,9]
Name: 2, dtype: int64
row2:
a 7
b 8
interval [9,10]
Name: 3, dtype: int64
有没有一种内置的方法可以实现这个? 我查看了df.groupby(df.index // 2)和df.itertuples,但是这些方法似乎都不能实现我的目标。
编辑: 总体目标是获取一个布尔列表,指示列“interval”中的区间是否重叠。 在上面的示例中,该列表将是
overlaps = [True, False, False]
所以每对都需要一个布尔值。