Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过条件选择从数据帧返回列列表,其中行中的所有值都为真?_Python_Pandas_Dataframe_Conditional_Selection - Fatal编程技术网

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()进行索引