这是我的数据:
o h l c
time
2019.02.04 01:21:00 x x x x
2019.02.04 01:22:00 x x x x
2019.02.04 01:23:00 x x x x
2019.02.04 01:24:00 x x x x
2019.02.04 01:25:00 x x x x
2019.02.04 01:26:00 x x x x
2019.02.04 01:27:00 x x x x
2019.02.04 01:28:00 x x x x
2019.02.04 01:29:00 x x x x
2019.02.04 01:30:00 x x x x
2019.02.04 01:31:00 x x x x
2019.02.04 01:32:00 x x x x
2019.02.04 01:33:00 x x x x
2019.02.04 01:34:00 x x x x
2019.02.04 01:35:00 x x x x
2019.02.04 01:36:00 x x x x
2019.02.04 01:37:00 x x x x
2019.02.04 01:38:00 x x x x
2019.02.04 01:39:00 x x x x
2019.02.04 01:40:00 x x x x
2019.02.04 01:41:00 x x x x
2019.02.04 01:42:00 x x x x
2019.02.04 01:43:00 x x x x
2019.02.04 01:44:00 x x x x
2019.02.04 01:45:00 x x x x
随着时间作为
index
,我尝试分离这些值。但是没有成功。从头开始,我想每3行进行切片,而每片之间跳过2行。
我尝试了这个:
df_candle = df[5:400+2]
但这是来自
5 to 402
的简单系列。我认为这会帮助我跳到2。我期望的结果是:
time,o,h,l,c
2019.02.04 01:21:00,x,x,x,x
2019.02.04 01:22:00,x,x,x,x
2019.02.04 01:23:00,x,x,x,x
2019.02.04 01:26:00,x,x,x,x
2019.02.04 01:27:00,x,x,x,x
2019.02.04 01:28:00,x,x,x,x
2019.02.04 01:31:00,x,x,x,x
2019.02.04 01:32:00,x,x,x,x
2019.02.04 01:33:00,x,x,x,x
2019.02.04 01:36:00,x,x,x,x
2019.02.04 01:37:00,x,x,x,x
2019.02.04 01:38:00,x,x,x,x
2019.02.04 01:41:00,x,x,x,x
2019.02.04 01:42:00,x,x,x,x
2019.02.04 01:43:00,x,x,x,x
请让我知道我能做什么。
最佳答案
IIUC,您正在寻找可变步长切片。我可以想到的一种选择是使用groupby
和cumcount
来构建过滤器掩码:
df[df.groupby(pd.RangeIndex(len(df)) // 5).cumcount() < 3]
o h l c
time
2019.02.04 01:21:00 x x x x
2019.02.04 01:22:00 x x x x
2019.02.04 01:23:00 x x x x
2019.02.04 01:26:00 x x x x
2019.02.04 01:27:00 x x x x
2019.02.04 01:28:00 x x x x
2019.02.04 01:31:00 x x x x
2019.02.04 01:32:00 x x x x
2019.02.04 01:33:00 x x x x
2019.02.04 01:36:00 x x x x
2019.02.04 01:37:00 x x x x
2019.02.04 01:38:00 x x x x
2019.02.04 01:41:00 x x x x
2019.02.04 01:42:00 x x x x
2019.02.04 01:43:00 x x x x