2017-05-31 100 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) 
相关问题