簡體   English   中英

根據列中的值過濾數據框

[英]Filter data frame based on values in column

我有一個數據幀(df1)如下所示:

       value 
loc1   10
loc2   1
loc3   2
loc4   12
loc5   14
loc6   3
loc7   4

我想獲取所有ID> 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

首先,您忘記了使用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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM