我有一个数据帧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
然后,您可以将它们组合在一起或按原样使用它们