python - 通过比较 pandas 中的一列或多列进行 bool 切片

标签 python python-3.x pandas dataframe

如何将一列与所有其他列进行比较并获取 bool 系列以使用 i loc 对数据帧进行切片?

import numpy as np
import pandas as pd
a = np.random.normal(1,10,(10,1))
b = np.random.normal(1,5,(10,1))
c = np.random.normal(1,5,(10,1))
d = np.random.normal(1,5,(10,1))

e = np.append(a,b, axis = 1)
e = np.append(e,c, axis = 1)
e = np.append(e,d, axis = 1)

df = pd.DataFrame(data = e, columns=['a','b','c','d'])



          a         b          c          d
0   4.043832 -1.672865  -0.401864   3.073481
1   4.828796 -0.830688   3.652347  -1.780346
2  13.055145  5.730707  -2.305093  -4.566279
3   6.589498 -0.525029  -1.077942  -3.850963
4   5.273932 -1.003112   0.393002  -0.415573
5  -7.872004 -2.506250   1.725281   6.676886
6  -4.797119  6.448990   0.254142  -7.374601
7   8.610763  8.075350  13.043584  12.768633
8 -10.871154  2.152322   2.093089  11.570059
9 -22.148239  1.493870   3.649696   2.455621

df.loc[df.a > df.b]  

将给出所需的结果,但仅限于 1:1 比较

        a         b          c          d
0   4.043832 -1.672865  -0.401864   3.073481
1   4.828796 -0.830688   3.652347  -1.780346
2  13.055145  5.730707  -2.305093  -4.566279
3   6.589498 -0.525029  -1.077942  -3.850963
4   5.273932 -1.003112   0.393002  -0.415573
7   8.610763  8.075350  13.043584  12.768633

我的方法是这样的:

S = ['b','c','d']

(df.a > df[S]).any(axis = 1)

0    False
1    False
2    False
3    False
4    False
5    False
6    False
7    False
8    False
9    False
dtype: bool

但不幸的是,该系列的所有行在某种程度上都是 False。我该如何解决这个问题?

最佳答案

使用lt

df[S].lt(df.a,0).any(axis=1)
Out[808]: 
0    False
1     True
2     True
3     True
4     True
5     True
6     True
7    False
8     True
9     True
dtype: bool

关于python - 通过比较 pandas 中的一列或多列进行 bool 切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47314070/

相关文章:

python - XML 标签文本到字符串忽略子标签但包含其文本

python - 将多列组合为单个日期时间的最佳方法是什么

python - 分布式本地聊天服务器

python-3.x - GridSearchCV 给出的结果与 LassoCV 的最佳 alpha 不同

python - 如果列与特定值匹配,如何在 Pandas Dataframe 中创建虚拟变量?

python - 用 Python 计算日期

python-3.x - 如何从没有扩展名python的路径中获取特定文件名

python - 在 matplotlib 中将字符串绘制为轴

python - 从列表创建二元组

python - 如何使用函数从数据框列中获取第一个和最后一个值