python中的日期时间df子集
基本问题,但我一直在这里遇到问题 我有一个df:python中的日期时间df子集,python,pandas,Python,Pandas,基本问题,但我一直在这里遇到问题 我有一个df: df: val date 2012-01-01 4.2 2012-01-02 3.7 2012-01-03 6.2 2012-01-04 1.2 2012-01-05 2.4 2012-01-06 2.3 2012-01-08 4.5 如你所见,2012-01-07并不存在。如果我要写: exDate = 20120107 df.ix[str(exDate)] 我得到一个关键错误 在这种情况下
df:
val
date
2012-01-01 4.2
2012-01-02 3.7
2012-01-03 6.2
2012-01-04 1.2
2012-01-05 2.4
2012-01-06 2.3
2012-01-08 4.5
如你所见,2012-01-07并不存在。如果我要写:
exDate = 20120107
df.ix[str(exDate)]
我得到一个关键错误
在这种情况下,我想将exDate更改为20120106(最大值低于20120107)。检查索引以查看日期是否存在的最简单方法是什么?如果日期不存在,请选择该数字下方的下一个最高值(然后以YYYYmmdd格式返回?)
此外,更一般地说,例如,获取日期低于20107的索引子集的最简单方法是什么?我似乎在范围方面做得很好,但很难选择日期的上限或下限
谢谢。要获取日期低于20107的子数据框,您可以使用:
In [11]: df[:'2012-01-07']
Out[11]:
val
date
2012-01-01 4.2
2012-01-02 3.7
2012-01-03 6.2
2012-01-04 1.2
2012-01-05 2.4
2012-01-06 2.3
要使用以下命令拾取最后一行:
因此,最后一个有效日期:
In [13]: df[:'2012-01-07'].irow(-1).name
Out[13]: '2012-01-06'
要获取日期低于20107的子数据框,您可以使用:
In [11]: df[:'2012-01-07']
Out[11]:
val
date
2012-01-01 4.2
2012-01-02 3.7
2012-01-03 6.2
2012-01-04 1.2
2012-01-05 2.4
2012-01-06 2.3
要使用以下命令拾取最后一行:
因此,最后一个有效日期:
In [13]: df[:'2012-01-07'].irow(-1).name
Out[13]: '2012-01-06'
谢谢如果我想知道2012-01-06的最后一个可用日期,我需要添加索引吗?如何将其转换为YYYYmmdd str?谢谢。我认为创建一个从'2012-01-06'到20120106的函数是最简单的,类似于
lambda x:x.replace('-','')
。另外:.strftime('%Y%m%d')似乎也会转换谢谢。如果我想知道2012-01-06的最后一个可用日期,我需要添加索引吗?如何将其转换为YYYYmmdd str?谢谢。我认为创建一个从'2012-01-06'到20120106的函数是最简单的,类似于lambda x:x.replace('-','')
。另外:.strftime('%Y%m%d')似乎也在转换