Python 如何通过条件选择从数据帧返回列列表,其中行中的所有值都为真?
我以下面的熊猫数据帧为例。此特定数据帧已作为较大数据帧的条件选择子集返回,因此只有一行具有日期时间索引Python 如何通过条件选择从数据帧返回列列表,其中行中的所有值都为真?,python,pandas,dataframe,conditional,selection,Python,Pandas,Dataframe,Conditional,Selection,我以下面的熊猫数据帧为例。此特定数据帧已作为较大数据帧的条件选择子集返回,因此只有一行具有日期时间索引 Apple Banana Lemon Orange Pear 2018-04-05 True False False True True 我想返回列值为True的列列表 在这里,我想返回一个包含苹果、橘子和梨的列表 我有以下有效的解决方案: afruitlist = [] for column in df.columns: i
Apple Banana Lemon Orange Pear
2018-04-05 True False False True True
我想返回列值为True的列列表
在这里,我想返回一个包含苹果、橘子和梨的列表
我有以下有效的解决方案:
afruitlist = []
for column in df.columns:
if df[column][0] == True:
afruitlist.append(column)
else:
pass
afruitlist
但是,有没有一种方法可以通过将条件选择部署到数据帧而不必显式部署循环来实现这一点
谢谢 由于数据帧是布尔数据类型,我们可以使用
np.where
[x for x in np.where(df,df.columns,'').tolist()[0] if x]
Out[162]: ['Apple', 'Orange', 'Pear']
如果数据帧是布尔数据类型,我们可以使用
np.where
[x for x in np.where(df,df.columns,'').tolist()[0] if x]
Out[162]: ['Apple', 'Orange', 'Pear']
假设结果只有一行,可以使用df.any()进行索引
假设结果只有一行,可以使用df.any()进行索引