我有一个数据框,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']
然后,我可以使用索引对另一列重新采样。
但我仍然希望有一个方法来重新配置整个列。有什么想法吗?
如果希望新列分别显示年份和月份,可以执行以下操作:
或者。。。
然后你就可以把它们结合起来,或者像现在这样和它们一起工作。
您可以直接访问
year
和month
属性,或者请求datetime.datetime
:将年和月结合起来的一种方法是生成一个整数来编码它们,例如:2014年8月的
201408
。在整个专栏中,您可以这样做:或其许多变体。
不过,我不太喜欢这样做,因为这样做会使日期对齐和算术在以后变得很痛苦,尤其是对于那些不遵循相同约定而使用您的代码或数据的人来说更痛苦。一个更好的方法是选择一个月中的某一天的约定,例如最终的非美国假日工作日或第一天等,并将数据保留为日期/时间格式,并保留所选的日期约定。
calendar
模块对于获取某些天(例如最后一个工作日)的数值非常有用。然后你可以做一些类似的事情:如果您碰巧在寻找一种方法来解决将datetime列格式化为某种字符串化表示的简单问题,那么您可以使用} 函数,如下所示:
datetime.datetime
类中的^{找到最佳方法!!
df['date_column']
必须采用日期时间格式。您还可以使用
D
表示天,2M
表示2个月等不同的采样间隔,如果有带时间戳的时间序列数据,我们可以使用45Min
表示45分钟,15Min
表示15分钟等粒度采样间隔相关问题 更多 >
编程相关推荐