我有一个数据框。我想根据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'”
答案 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