2017-04-11 89 views
1

嗨,我想應用一個函數,如下面的函數將日期分隔爲幾個月和幾年。我也想將這些結果導出到另一個名爲'month'和'year'的列。第二部分是我遇到的問題,即將結果導出到另一列的行。謝謝。Python:將函數應用於數據幀列並將結果放到另一列

'Full Date' 'Month' 'Year' 

07/31/2016 07  2016 
05/28/2011 05  2011 

回答

1

更詳細的方法:

df = pd.DataFrame({'Full Date': ['07/31/2016','05/28/2011']}) 
def date_breaker(date): 
    year = date[-4:] 
    month = date[:2] 
    return (year,month) 
x = df['Full Date'].map(lambda x: date_breaker(x)) 
df['year'],df['month'] = zip(*x) 
3

假設FullDate列是datetime D型的:

In [119]: df['Month'] = df['FullDate'].dt.month 

In [120]: df['Year'] = df['FullDate'].dt.year 

In [121]: df 
Out[121]: 
    FullDate Month Year 
0 2016-07-31  7 2016 
1 2011-05-28  5 2011 

如果它是一個stringobject):

In [133]: df[['Month','Year']] = df['FullDate'].str.split('/', expand=True).loc[:, [0,2]] 

In [134]: df 
Out[134]: 
    FullDate Month Year 
0 07/31/2016 07 2016 
1 05/28/2011 05 2011 
2

另一種方式,你可以做到這一點:

df = pd.DataFrame({'FullDate': ['07/31/2016','05/28/2011']}) 
df['Month'] = df['FullDate'].apply(lambda x: x.split('/')[0]) 
df['Year'] = df['FullDate'].apply(lambda x: x.split('/')[2]) 
相關問題