2016-02-19 67 views
1

我想要一個函數df_out(df_in,val_min,val_max),通過選擇行中的值,從另一個系列/數據框列在定義的範圍內。 例如,如果df_in看起來是這樣的:熊貓限制系列/數據框到一列的值的範圍

Name Age 

John 13 

Jack 19 

Sylvia 21 

Anna 14 

Carlos 15 

Vladimir 30 

Gustav 28 

Amie 24 

我想df_out(18,25),看起來像這樣:

Name Age 

Jack 19 

Sylvia 21 

Amie 24 

什麼是最 「Python化」 的方式來做到這一點?謝謝!

回答

1

一旦你擁有了它在數據幀df,與Name列,Age,你可以簡單地使用

df[(min_val <= df.Age) & (df.Age <= max_val)] 

請注意,您需要使用看似冗餘括號在上述表達式中,由於操作優先。


您可以創建到這個函數像這樣:

def df_limited(df, min_val, max_val): 
    return df[(min_val <= df.Age) & (df.Age <= max_val)] 
+0

謝謝。有沒有一種方法可以爲此創建函數,即:df_limited(df,min_val,max_val)= df [(min_val <= df.Age)&(df.Age <= max_val)]? – Alpha

+0

@Alpha Yup,查看更新。 –

+0

太好了,謝謝。我有一個後續問題。我如何在結果直方圖上插值並繪製結果?我需要首先從數據框中創建一個函數嗎? – Alpha

2

爲什麼要使用一個功能,當它是那麼容易做本地?

>>> df[df.Age.between(18, 25)] 
    Name Age 
1 Jack 19 
2 Sylvia 21 
7 Amie 24 

>>> df[df.Age.between(19, 24, inclusive=False)] 
    Name Age 
2 Sylvia 21 
相關問題