2017-05-31 99 views
3

我有以下df'per_end_date'是一個Datetime對象。創建一個新的熊貓列與另一列的年份

zacks_mktv_df[:4] 

ticker | per_end_date | mkt_val 
-------------------------------- 
A  | 2016-12-31 | 14648.84 
A  | 2015-12-31 | 13704.02 
A  | 2014-12-31 | 13751.83 

我想從「per_end_date」列中的每一行搶一年再拍排出來的這麼對我的桌子上面它會是什麼樣子。

ticker | per_end_date | mkt_val | 
-------------------------------------------- 
A  | 2016-12-31 | 14648.84 | 2016 
A  | 2015-12-31 | 13704.02 | 2015 
A  | 2014-12-31 | 13751.83 | 2014 

我試過了。

zacks_mktv_df['per_fisc_year'] = zacks_mktv_df[zacks_mktv_df.per_end_date.dt.year] 

獲取如下因素的錯誤:

IndexError: indices are out-of-bounds 
+1

試試這個:'zacks_mktv_df ['per_fisc_year'] = zacks_mktv_df.per_end_date.dt.year' – MaxU

+0

感謝@MaxU,也很有效 – TEKOrchestrator

+0

歡迎您 – MaxU

回答

4

你可以使用

zacks_mktv_df['per_fisc_year'] = zacks_mktv_df['per_end_date'].dt.year 

如果列per_end_date是如。 datetime64

3

我能夠與.assign實現這一目標還有如下。

zacks_mktv_df.assign(per_fisc_year= zacks_mktv_df.per_end_date.dt.year) 
相關問題