python - 从 Pandas 日期时间列中分别提取月份和年份

我有一个数据框 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'].resample('M', how = 'mean')

我收到以下错误:

Only valid with DatetimeIndex or PeriodIndex 

然后我尝试了:

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

我收到以下错误:

'Timestamp' object has no attribute '__getitem__' 

有什么建议吗?

编辑:我有点想通了。

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

然后您可以将它们组合起来或按原样使用它们。

https://stackoverflow.com/questions/25146121/

相关文章:

python - _tkinter.TclError : no display name and n

python - 减少matplotlib图中的左右边距

python - 如何在 Python 中实现树?

linux - 用于计算已用时间的 Bash 脚本

c - 如何在 C 中与 Linux 一起使用共享内存

linux - 如何在 Linux shell 脚本中插入新行?

linux - 如何在命令行中从脚本运行函数?

linux - 如何找到我使用的 Fedora 版本?

python - 拆分(分解) Pandas 数据框字符串条目以分隔行

python - 根据数据类型获取 pandas 数据框列的列表