Python 按天/小时/分钟进行数据帧切片
我有一个带有日期时间索引的数据帧,如“YYYY-MM-DD HH:MM:SS”Python 按天/小时/分钟进行数据帧切片,python,pandas,slice,Python,Pandas,Slice,我有一个带有日期时间索引的数据帧,如“YYYY-MM-DD HH:MM:SS” Index Parameter 2007-05-02 14:14:08 134.8 2007-05-02 14:14:32 134.8 2007-05-02 14:14:41 134.8 2007-05-02 14:14:53 134.8 2007-05-02 14:15:01 134.8 2007-05-02 14:15:09 13
Index Parameter
2007-05-02 14:14:08 134.8
2007-05-02 14:14:32 134.8
2007-05-02 14:14:41 134.8
2007-05-02 14:14:53 134.8
2007-05-02 14:15:01 134.8
2007-05-02 14:15:09 134.8
......
2007-05-30 23:08:02 105.9
2007-05-30 23:18:02 105.9
2007-05-30 23:28:02 105.9
2007-05-30 23:38:03 105.8
可以按年份df['2007']
或按月df['2007-05']
对数据帧进行切片
但是当我尝试按天分割数据帧时,例如df['2007-05-02']
,我得到了错误:
KeyError: < Timestamp: 2007-02-05 00:00:00.
KeyError:
我使用熊猫版本8.0.1。是否有可能以小于年或月的频率分割数据帧?例如,按天或小时?使用
df.ix[x:y]
其中x
和y
是日期时间对象
例如:
In [117]: frame.index.summary()
Out[117]: 'DatetimeIndex: 6312960 entries, 2000-04-05 00:01:00 to 2012-04-06 00:00:00\nFreq: T'
In [118]: x=datetime(2001, 4, 5, 0, 1)
In [119]: y=datetime(2001, 4, 5, 0, 5)
In [120]: print frame.ix[x:y]
radiation tamb
2001-04-05 00:01:00 67.958873 8.077386
2001-04-05 00:02:00 50.801294 0.731453
2001-04-05 00:03:00 16.042035 6.944998
2001-04-05 00:04:00 5.678343 9.728967
2001-04-05 00:05:00 72.551601 7.652942
您也可以这样做:
In [121]: print frame.ix[x]
radiation 67.958873
tamb 8.077386
Name: 2001-04-05 00:01:00
有趣的是,按年或年-月索引的行为与按年-月-日索引的行为不同。对于年-月-日,仅考虑H:M:S=0:0:0的时间戳。顺便说一句,我想你是在处理一个系列,而不是一个数据帧。是的,但它能在不“击中”确切的索引点的情况下完成吗?例如,如果该系列以2007-05-02 14:14:08开始,则使用
x=pd进行索引。时间戳('2007-05-02 14:00:00')
仍会引发KeyError
。