如何获得数据框匹配中的第一个索引

罗伯托·托马斯

给定一个与条件匹配的索引列表,该列表中将有许多依次相邻的跨度,如何轻松地仅选择每个跨度中的第一个。

这样

magicallySelect([1,2,3,10,11,12,100,101,102]) == [1,10,100]

但重要的是,这也适用于其他指标,例如日期(我的数据就是这种情况)。我希望开始工作的实际代码是:

original.reset_index(inplace=True)

predict = {}
for app in apps:
    reg = linear_model.LinearRegression()
    reg.fit(original.index.values.reshape(-1, 1), original[app].values)

    slope = reg.coef_.tolist()[0]
    delta = original[app].apply(lambda x: abs(slope - x))

    forecast['test_delta'] = forecast[app].apply(lambda x: abs(slope - x))
    tdm = forecast['test_delta'].mean()
    tds = forecast['test_delta'].std(ddof=0)

    # identify moments that are σ>2 abnormal
    forecast['z'] = forecast['test_delta'].apply(lambda x: abs(x - tdm / tds))
    sig = forecast.index[forecast[forecast['z'] > 2]].tolist()

    predict[app] = FIRST_INDEX_IN_EACH_SPAN_OF(sig)
托比·佩蒂
l = [1,2,3,10,11,12,100,101,102]
indices =  [l[i] for i in range(len(l)) if l[i-1]!=l[i]-1]

将其重新排序以适合日期时间,这将为您提供列表中的所有项目,其中与前一个项目的差距大于1天(默认情况下加上第一个项目):

indices = [l[0]] + [l[i] for i in range(len(l)) if (l[i]-l[i-1]).days>1]

对于以分钟为单位的时间差,您可以将其转换为秒,并将其替换为。例如15分钟(900秒),您可以执行以下操作:

indices = [l[0]] + [l[i] for i in range(len(l)) if (l[i]-l[i-1]).seconds>900]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获得数组的第一个元素?

Python熊猫获得数据的第一个和最后一个索引,如果第一个也是最后一个,则重复

在Multiindex数据框中查找每个索引的第一个匹配项

如何从多索引数据框中获取第一个二级索引?

从熊猫数据框中找到值的第一个匹配项(从值列表中查找)并返回该行的索引

如何获得数组第一个元素的镜像?

我如何获得数组 React js 中的第一个唯一 ID 元素和最后一个唯一 ID 元素

如何将列表列表隐藏到数据框中并使列表的第一个元素作为索引

获取带有偏移索引的熊猫数据框中的列的第一个值

Pandas:在列表的数据框列中索引每个列表的第一个元素

合并熊猫数据框时如何仅使用第一个匹配项?

如何获得列表中第一个到某些索引值?

在Pandas数据框中查找第一个匹配项

返回新数据框中的第一个匹配值/列名称

选择数据框中带有前缀的变量的第一个匹配项

如何仅从组合框 c# 中获取第一个索引

在两个数据框中匹配行的第一个数据框中查找位置

重命名数据框列表中的第一个列名以匹配数据框的名称

将数据框中的两列匹配到另一个数据框中的多个列,并返回第一个匹配列

如何只匹配Vimregex中的第一个

PHP仅获得数组的第一个元素

如何从数据框中删除多个标头并仅保留第一个 python

如何更改满足特定条件的数据框中的第一个值

如何提取数据框对象内列表中的第一个单词?

如何索引列表的第一个元素,并将其应用于R中数据框的每一行?

删除数据框中从第一个匹配到最后一行的所有行

索引熊猫数据框以返回每天的第一个数据点

如何组合 2 个数据框,创建仅出现在第二个数据框而不出现在第一个数据框和 groupby 中的行以获得总和?

SQL Server获得第一个匹配值