2013-02-22 101 views
1

我是一個新手,已經找到了我的一個公平的位,但希望有人能告訴我如何添加一列到具有基於出生日期在另一列。例如,如果:df.DOB.isbetween(1/1/2007,12/31/2012)然後df ['ageband'] =「0to5」在Python熊貓添加年齡段到數據框

在excel中,我使用了一個vlookup函數。我一直在努力尋找一個解決方案几個小時。我至少能弄清楚如何獲得真正的假標誌...

感謝

回答

3

您可以使用.apply()對一列中的每個值執行給定的功能。我覺得這樣的事情應該工作:

def get_ageband(value): 
    ageband = None 
    if value.isbetween(1/1/2007,12/31/2012): 
     ageband = "0to5" 
    return ageband 

df["ageband"] = df.DOB.apply(get_ageband) 
+0

我很驚訝pd.cut不符合這方面的工作。這會很高興做'pd.cut(日期,['20070101','20121231'])'或類似的東西,並通過bin標籤。 – Zelazny7 2013-02-22 14:30:08

+0

謝謝。現在有一個更基本的問題 - 我使用的是pandas.read_csv,它會自動將帶空格的列默認爲字符串。我嘗試先導入numpy並指定數據類型,但這也不起作用。看起來像一個簡單的問題,應該有一個簡單的解決方案。我在這裏苦苦掙扎......僅供參考 - 我在12年前參加了AP Comp Sci(Pascal)和(C++在大學的一學期),而且我是一名投資專業人員,並非真正的程序員,而是嘗試着。 。 。非常感謝! – user2098002 2013-03-07 16:59:46