熊猫将时间范围转换为索引

时间:2019-07-11 06:26:47

标签: python pandas indexing time

您能否建议我将时间段转换为相应索引的简单方法?

我有一个功能,可以根据无法更改的数字索引(从第10行到第20行)从数据帧中选择条目。同时,我的数据帧具有时间索引,并且我根据时间戳选择了它的一部分。如何将这些时间戳转换为相应的数字索引?

非常感谢 亚历克斯

添加一些示例:

small_df.index[1]
Out[894]: Timestamp('2019-02-08 07:53:33.360000')

small_df.index[10]
Out[895]: Timestamp('2019-02-08 07:54:00.149000') # instead of time stamps.

这些是我想从具有时间索引的第二个数据帧中选择的时间段。但是我想用数字索引做到这一点 那意味着 1.找到与上述时间段相对应的数字索引

根据上面的评论,这可能与我需要的内容非常接近:

start=second_dataframe.index.get_loc(pd.Timestamp(small_df.index[1]))

end=second_dataframe.index.get_loc(pd.Timestamp(small_df.index[10]))

picked_rows= second_dataframe[start:end]

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我认为如果需要职位,您需要Index.get_loc

small_df.index.get_loc(pd.Timestamp('2019-02-08 07:53:33.360000'))
1

编辑:如果值始终匹配,则可以首先获取时间戳表,并通过DataFrame.loc提取第二行:

start = small_df.index[1]

end = small_df.index[10]

picked_rows = second_dataframe.loc[start:end]

OrL

start=pd.Timestamp(small_df.index[1])

end=pd.Timestamp(small_df.index[10])

picked_rows = second_dataframe.loc[start:end]