这是我的数据:
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
请让我知道我能做什么。
答案 0 :(得分:2)
尝试:
df1=df[5:400]
print(df1.drop([i for i in df1.index.tolist() if (str(i)[-1] in ['8','9']) or (str(i+5)[-1] in ['8','9'])]))
输出:
time o h l c
5 2019.02.04 01:26:00 1.14558 1.14558 1.14556 1.14556
6 2019.02.04 01:27:00 1.14556 1.14556 1.14556 1.14556
7 2019.02.04 01:28:00 1.14556 1.14556 1.14549 1.14551
10 2019.02.04 01:31:00 1.14554 1.14554 1.14546 1.14546
11 2019.02.04 01:32:00 1.14551 1.14551 1.14541 1.14544
12 2019.02.04 01:33:00 1.14543 1.14543 1.14541 1.14541
15 2019.02.04 01:36:00 1.14557 1.14558 1.14553 1.14556
16 2019.02.04 01:37:00 1.14556 1.14556 1.14556 1.14556
17 2019.02.04 01:38:00 1.14557 1.14557 1.14556 1.14556
20 2019.02.04 01:41:00 1.14555 1.14555 1.14555 1.14555
21 2019.02.04 01:42:00 1.14555 1.14555 1.14551 1.14551
22 2019.02.04 01:43:00 1.14555 1.14555 1.14551 1.14551
答案 1 :(得分:2)
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