>> df = pd.DataFrame(np.random.randint(0, 10, (5, 4)), columns=list('ABCD'))
   A  B  C  D
0  0  4  8  4
1  0  7  7  1
2  0  6  1  6
3  1  9  5  2
4  8  4  1  1

0. 转换为 numpy.ndarray 进行索引

>> df.values ⇒ numpy.ndarray

# 返回 B 列
>> df.values[:, 1]

# dataframe 索引列
>> df[:]['B']   

1. 使用逻辑表达式

Pandas 布尔索引的逻辑运算符

  • A 列元素为 0 的全部行;(对行进行过滤)

    >> df[df.A == 0][:]
       A  B  C  D
    0  0  4  8  4
    1  0  7  7  1
    2  0  6  1  6
        # 等价于 df[df['A'] == 0][:]
  • A 列元素为 0 时 B 列的最大值;

    >> df[df['A'] == 0]['B'].max()
    7
        # 等价于 df[df.A == 0]['B'].max()
posted on 2017-09-12 23:41  未雨愁眸  阅读(1088)  评论(0编辑  收藏  举报