d = {'Consumer Staples': [-0.065], 'Technology': [0.04], 'Financials': [0.06], 'Health Care': [0.07]}
df = pd.DataFrame(data = d)
我只想返回绝对值Value
大于0.05的列的名称。在此示例中,它将返回“消费必需品”,“财务”和“医疗保健”,但不返回“技术”。如何在熊猫上做到这一点?
谢谢!
答案 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()