我有一个数据框 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
然后您可以将它们组合起来或按原样使用它们。
关于python - 从 Pandas 日期时间列中分别提取月份和年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25146121/