有一个数据集:
dates = ['2018-11-30 23:40:15', '2018-11-30 23:41:05',
'2018-11-30 23:41:15', '2018-12-01 00:08:57',
'2018-12-01 00:09:12', '2018-12-01 00:27:56',
'2018-12-01 00:28:56', '2018-12-01 00:39:37',
'2018-12-01 00:44:18', '2018-12-01 00:45:18']
dates = pd.to_datetime(dates)
ind = [['id_1','id_1','id_1','id_1','id_1',
'id_2', 'id_2', 'id_3', 'id_3', 'id_3'], dates]
df = pd.DataFrame(np.random.randn(10, 3), index=ind, columns=['col1', 'col2', 'col3'])
我知道可以在二级索引中指定一个具体的日期,并获取它对应的所有数据。所以:
df.loc['id_1', '2018-11-30']
是否可以按日期和时间进行切片(例如,选择索引 id_1 到并包括给定时间的所有数据)?
我正在尝试这样做:
df.loc['id_1', :'2018-12-01 00:08:57']
左右,如果需要特定数量的数据:
df.loc['id_1', :'2018-12-01']
结果,索引本身会显示出来,但您需要一个 DataFrame,其中包含直到并包括索引中指定的特定时间的数据。
甚至有可能以这种方式进行切割吗?如果是这样,怎么做?
一个明确的例子:
df.loc['id_1', :'2018-12-01 00:08:57']
我希望看到:
使用pd.IndexSlice - 它专门设计用于更轻松地使用多索引切片:
尝试切片: