给定一个需要比较第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])
我可以做到这一点,但我确信有一种更简单的方法可以使用numpy
或pandas
函数来获取布尔向量:
[row[0] < row[1] for idx, row in df.iterrows()]
答案 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)