我有一个大数据框,我只需要用一个索引与另一个索引连续的数据创建一个新的数据框。 例如:
import pandas as pd
import numpy as np
indexer = [0,1,3,5,6,8,10,12,13,17,18,20,22,24,25,26]
df = pd.DataFrame(range(50,66), index=indexer, columns = ['A'])
所以在这种情况下所需的输出是:
A
0 50
1 51
5 53
6 54
12 57
13 58
17 59
18 60
24 63
25 64
26 65
在 pandas 中有快速的方法吗?还是需要在每一行上使用某种循环和函数来完成?
最佳答案
您无法移动索引,因此您首先需要重置它。然后使用 loc
操作,同时测试上移和下移。请记住将您的索引设置回原来的位置。
df.reset_index(inplace=True)
>>> df.loc[(df['index'] == df['index'].shift(1) + 1)
| (df['index'] == df['index'].shift(-1) - 1), :].set_index('index')
A
index
0 50
1 51
5 53
6 54
12 57
13 58
17 59
18 60
24 63
25 64
26 65
关于python - 为索引连续 +/-1 的所有行过滤 pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32849355/