我有一个如下所示的数据框(df1):
value
loc1 10
loc2 1
loc3 2
loc4 12
loc5 14
loc6 3
loc7 4
我想获得一个值为> 10的所有id。的列表。
这是我的解决方案,但其格式不正确:
id_outlier = df1 [df1> 10]
value
loc1 10
loc2 NaN
loc3 NaN
loc4 12
loc5 14
loc6 NaN
loc7 NaN
我想要的输出是:
loc1
loc4
loc5
答案 0 :(得分:0)
首先,您忘记使用value
属性。
id_outlier = df1[df1.value >= 10]
您还可以使用bracket
表示法。
id_outlier = df1[df1['value'] >= 10]
正如我从您的问题中看到的,您需要的是返回由上述条件声明过滤的indexes
列表。为此,您必须使用index
属性。
id_outlier = df1[df1.value >= 10].index
输出
In[1]: id_outlier
Out[1]: Int64Index(['loc1', 'loc4', 'loc5'],
dtype='int64', length=3)
如果你想获得一个numpy数组,只需使用values
属性。
id_outlier = df1[df1.value >= 10].index.values
或使用tolist
获取python列表。
id_outlier = df1[df1.value >= 10].index.tolist()