根据其值选择列

时间:2018-07-19 12:43:24

标签: python pandas

d = {'Consumer Staples': [-0.065], 'Technology': [0.04], 'Financials': [0.06], 'Health Care': [0.07]}
df = pd.DataFrame(data = d)

我只想返回绝对值Value大于0.05的列的名称。在此示例中,它将返回“消费必需品”,“财务”和“医疗保健”,但不返回“技术”。如何在熊猫上做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:0)

将来,您将包括文本代码,原始数据,用于重现df的代码以及所需的结果。

您可以使用abs返回绝对值,并使用gt来实现此目的,以大于生成布尔掩码,我们可以使用它来掩码列。请注意,这里因为我们有一个数据框,所以掩码也是一个数据框,要获取布尔值,请使用.values返回一个numpy数组,这是一个嵌套列表,因此您需要使用下标运算符{{ 1}}:

[]

如果要获取字符串列表,请致电In[112]: df.columns[df.abs().gt(0.05).values[0]] Out[112]: Index(['Consumer Staples', 'Financials', 'Health Care'], dtype='object')

tolist()