【发布时间】:2016-10-05 17:24:15
【问题描述】:
我有一个 pandas 数据框 navTable,它的索引是一系列日期。
我需要找出索引中连续日期之间的差异
Delta
2016-08-10 0.006619
2016-08-12 0.006595
2016-08-14 0.006595
2016-08-17 0.006595
2016-08-18 0.006595
我想要一个新列Days_Diff,这将使我在后续日期(索引中)有所不同。因此我的输出应该是这样的
Delta Delta_Days
8/10/2016 0.006619 None
8/12/2016 0.006595 2
8/14/2016 0.006595 2
8/17/2016 0.006595 3
8/18/2016 0.006595 1
我先尝试了这个:
navTable['Index'] = navTable.index
navTable['Days_Diff'] = navTable['Index'] - navTable['Index'].shift(1)
navTable['Delta_Days'] = navTable['Days_Diff'].days
直接,这没有被接受,因为它抱怨“无法在系列上应用天数”
所以,我尝试了这个:
navTable['Index'] = navTable.index
navTable['Days_Diff'] = navTable['Index'] - navTable['Index'].shift(1)
navTable['Delta_Days'] = [ eachDayDiff.days for eachDayDiff in list(dataTable['Days_Diff']) ]
可以理解,它抱怨第一个元素是Null。
'NaTType' 对象没有属性'days'
问题 1) 我是否有效地处理了这种情况? 问题2)我如何解决
'NaTType' 对象没有属性'days'
作为记录,第一个元素的类型为pandas.tslib.NaTType
其余类型为pandas.tslib.Timedelta
编辑:格式化
【问题讨论】:
标签: python pandas time-series