我有一个时间序列数据框架,我想删除它的一些特征(通过应用线性函数)。我已经有了其他的数据帧来指示特性的开始和结束。
myRange_Start数据框应该像这样:
<表类>
示例
tbody><<tr>0 57 1350 2642 3 926 41211 表类>
删除行:
您可以生成要删除的值的扁平列表和drop
:
from itertools import chain
df2 = df.drop(list(chain(*(list(range(a,b+1)) for a,b in zip(df1.Sample, df2.Sample)))))
保留行:
from itertools import chain
df.loc[list(chain(*(list(range(a,b+1)) for a,b in zip(df1.Sample, df2.Sample))))]
示例(删除行):
df = pd.DataFrame({'col': range(50, 1255)}, index=range(50, 1255))
df2 = df.drop(list(chain(*(list(range(a,b+1)) for a,b in zip(df1.Sample, df2.Sample)))))
输出:
col
50 50
51 51
52 52
53 53
54 54
55 55
56 56
98 98
99 99
100 100
... ...
1209 1209
1210 1210
1252 1252
1253 1253
1254 1254
[1000 rows x 1 columns]