从使用条件比较列中获取布尔向量

时间:2017-09-22 08:56:09

标签: python pandas numpy

给定一个需要比较第0列和第1列的矩阵:

>>> import pandas as pd
>>> df = pd.DataFrame([[3,4,'a'],[3,5,'b'],[9,2,'a']])
>>> df
   0  1  2
0  3  4  a
1  3  5  b
2  9  2  a

目标是比较第一列和第二列,使它符合某些条件,例如:如果我们想知道列df[0]中的值是否低于df[1]。所需的输出看起来如下:

[True, True, False]

我尝试将np.where与条件一起使用,但似乎它正在返回符合条件的值:

>>> import numpy as np
>>> np.where(df[0] < df[1], df[0], df[1])
array([3, 3, 2])

我可以做到这一点,但我确信有一种更简单的方法可以使用numpypandas函数来获取布尔向量:

[row[0] < row[1] for idx, row in df.iterrows()]

1 个答案:

答案 0 :(得分:1)

这就是你想要的吗?

import numpy as np

df = np.array([[3,4,'a'],[3,5,'b'],[9,2,'a']])
df[0, :] == df[1, :]
#output array([ True, False, False], dtype=bool)
df[0, :] < df[1, :]
#output array([False,  True,  True], dtype=bool)