从Datetime列中分别提取月份和年份

我有一个数据帧df,具有以下列:

df['ArrivalDate']=
...
936   2012-12-31
938   2012-12-29
965   2012-12-31
966   2012-12-31
967   2012-12-31
968   2012-12-31
969   2012-12-31
970   2012-12-29
971   2012-12-31
972   2012-12-29
973   2012-12-29
...

列的元素是pandas.tslib.Timestamp

我只想包括年份和月份。我以为会有简单的方法来做,但我想不出来

以下是我尝试过的:

df['ArrivalDate']。重新采样('M',how='mean')

我得到了以下错误:

仅对DatetimeIndex或PeriodIndex有效

然后我试着:

df['ArrivalDate'].应用(lambda(x):x[:-2])

我得到了以下错误:

“Timestamp”对象没有属性“\uuu getitem\uuuu”

有什么建议吗

编辑:我算是弄明白了

df.index=df['ArrivalDate']

然后,我可以使用索引对另一列重新采样

但是我仍然想要一种重新配置整个列的方法。有什么想法吗

如果希望新列分别显示年份和月份,可以执行以下操作:

df['year']=pd.DatetimeIndex(df['ArrivalDate']).year
df['month']=pd.DatetimeIndex(df['ArrivalDate']].month

或者

df['year']=df['ArrivalDate'].dt.year
df['month']=df['ArrivalDate'].dt.month

然后,您可以将它们组合在一起或按原样使用它们

发表评论