在一个数据帧中处理时间序列数据。日期时间索引不完整(即某些日期丢失)。你知道吗
我想创建一个日期时间序列为1年偏移量的新列,但只包含原始datetimeindex中的日期。挑战在于,在许多情况下,索引中不存在精确的1y匹配。你知道吗
Index (Input) 1 year offset (Output)
1/2/2014 None
1/3/2014 None
1/6/2014 None
1/7/2014 None
1/9/2014 None
1/10/2014 None
1/2/2015 1/2/2014
1/5/2015 1/3/2014
1/6/2015 1/6/2014
1/7/2015 1/7/2014
1/8/2015 1/9/2014
1/9/2015 1/10/2014
要求如下:
“抵消日期”组中的每个日期也必须出现在索引列中(即不希望引入新日期,如2014年1月8日
所有抵销日期必须按升序排列(日期顺序必须保留)
到目前为止我所尝试的:
data["1 year offset (Output)"] = data.Index.shift(365)
没有帮助,因为索引中的日期数在不同年份是不同的。你知道吗我现在要做的有几个步骤:
使用set(list)
方法从“临时1年偏移量”中删除datetimeindex中不存在的单个日期,并用NaN替换单元格
在datetimeindex中选择“临时1年偏移量”为NaN的日期,并减去一年
使用argmin
这里的挑战是,在某些情况下,我会得到两个条目以及天数的降序。这些会以以下方式影响结果(请参见第n天和第n+1天之间的timedelta):
Index (Input) 1 year offset (Output) Timedelta
4/17/2014 4/16/2014 1
4/22/2014 4/17/2014 1
4/23/2014 4/25/2014 8
4/24/2014 None
4/25/2014 4/22/2014 -3
4/28/2014 4/23/2014 1
4/29/2014 4/24/2014 1
4/30/2014 4/25/2014 1
在任何情况下,这最后一种方法似乎是对基本目标的简单性的过度关注。有没有更快更简单的方法?你知道吗
如何将datetime系列中的每个日期与同一系列中最近的一年前日期进行分组?
可能是这样的:
然而,看看这个线程,当一年有366天时,可以正确地处理1年: Add one year in current date PYTHON
因此,这个代码需要一些小的修改。你知道吗
退货:
相关问题 更多 >
编程相关推荐