请教关于python pandas布尔索引的问题

假设df是DataFrame结构表格,有A、B、C几列。请教两个问题:
(1)如果想索引A列大于2的所有行数据,只有写成df[df.A>2]才能执行,如果此处用df.loc[df.A>2]或df.iloc[df.A>2]都会出错,请问为什么?
(2)如果想索引列名不为C的所有列数据,写成df.loc[:,df.columns!='C']或df.iloc[:,df.columns!='C']都能正确执行,结果一样,这是为什么?谢谢。
上面第2个问题中,如果不写loc或iloc,如df[:,df.columns!='C'],就会出错,而df[df.A>2]却不错,为什么?

先看一个小例子
from pandas import Series, DataFrame

data = DataFrame({'k': [1, 1, 2, 2]})

print data

IsDuplicated = data.duplicated()

print IsDuplicated
print type(IsDuplicated)

data = data.drop_duplicates()
print data

执行结果是:

k
0 1
1 1
2 2
3 2
0 False
1 True
2 False
3 True
k
0 1
2 2
温馨提示:答案为网友推荐,仅供参考
相似回答