需要帮助boolean slicing

时间:2016-11-20 22:25:44

标签: python pandas indexing boolean conditional-statements

我有一个数据框。我想根据2列之间的比较切片。例如,在以下示例中,我想提取列x大于列y的行:

d = pd.DataFrame({'x':[1, 2, 3, 4, 5], 'y':[4, 5, 6, 7, 8]})

d[d[:"x"]>d[:"y"]]

通过这样做我得到一个错误:

  

“unhashable type:'slice'”

1 个答案:

答案 0 :(得分:2)

您需要省略:并使用boolean indexing

d[d["x"]>d["y"]]

示例(更改了最后一个值):

d = pd.DataFrame({'x':[1, 2, 3, 4, 5], 'y':[4, 5, 6, 7, 3]})
print (d)
   x  y
0  1  4
1  2  5
2  3  6
3  4  7
4  5  3

print (d["x"]>d["y"])
0    False
1    False
2    False
3    False
4     True
dtype: bool

print (d[d["x"]>d["y"]])
   x  y
4  5  3