我有此代码段,该代码段在两列上进行计算,如果得到一些递增的模式,则将其视为有效的Key。如何在熊猫中优化它?
这里只有track_id
组。但是,我会有很多track_id
组,我需要对所有组都应用相同的组。
import pandas as pd
import numpy as np
tid = [5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5.,
5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5.]
j = [ 0., 0., 0., 0., 0., 1., 52., 53., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., 1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1.]
k = [ 0., 0., 0., 0., 0., -1., -1., -1., -1., -1., 56., 57., 58.,
59., 60., 61., 62., 63., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1.]
rules = ['rule_1_start', 'rule_1_end']
data = {'rule_1_start': j, 'rule_1_end': k, 'track_id': tid }
df = pd.DataFrame.from_dict(data)
for r in range(0, len(rules), 2):
track_groups = df.groupby('track_id')
for key, item in track_groups:
_min = np.argmin(item[rules[r]].values)
_max = np.argmax(item[rules[r+1]].values)
if _min < _max:
print(f"{key}")
我正在尝试找到类似这样的东西。如果您看到这两列,则表明存在增值模式。第1列具有77, 78,79
,第2列具有82-91
。模式应该从col1增加到col2,反之亦然。
我可以在pandas或numpy中使用其他任何方式来获得更高的性能吗?