熊猫检查多种最小的连续性标准

时间:2016-11-02 11:59:54

标签: python pandas dataframe criteria minimum

我有一个场景,我想检查列(Col1)中连续的pandas数据帧行是否满足最小标准(0.6),这也符合起始值至少的标准( 0.7)即:

Col1
0.3
0.5
0.55
0.8 = true
0.65 = true
0.9 = true
0.61 = true
0.3
0.6
0.67
0.74 = true
0.63 = true
0.61 = true

换句话说,如果值至少为0.7,或者如果该值至少为0.6且前面的值至少为0.6且连续序列中的第一个值为0,则检查将为True至少0.7。

它将运行一个非常大的数据集,因此需要高效。我认为shift()的某些内容会起作用......但是不能正确使用它。

1 个答案:

答案 0 :(得分:3)

您可以使用Series.where()构建逻辑系列。

步骤

  • 使用nan值初始化系列;
  • 为所有大于0.7的值
  • 分配True
  • 为小于0.6
  • 的所有值指定False
  • 正向填充值介于0.6~0.7之间,因为它取决于以前的值
  • 在系列
  • 开头填写可能缺少的值
  • 将dtype转换为boolean(可选)

这样:

import pandas as pd
import numpy as np
df['check'] = np.nan
df['check'] = (df['check'].where(df.Col1 < 0.7, True)
                          .where(df.Col1 > 0.6, False)
                          .ffill().fillna(False)
                          .astype(bool))

enter image description here