用匹配的值填充一个DataFrame

我有一个booleans的DataFrame。我想替换2个 False 后直接定位的值。True 价值。我以为 .replace() 方法就可以了,因为第5个例子似乎是我要找的。

我是这样做的。

dataIn = pd.DataFrame([False, False, False, True, False, False, False, False])
dataOut = dataIn.replace(to_replace=False, method='ffill', limit=2)
>>> TypeError: No matching signature found

这是我要找的输出结果

dataOut = pd.DataFrame([False, False, False, True, True, True, False, False])

解决方案:

# create a series not a dateframe
# if you have a dataframe then assign to a new variable as a series
# s = df['bool_col']

s = pd.Series([False, True, False, True, False, False, False, False])
# create a mask based on the logic using shift
mask = (s == False) & (((s.shift(1) == True) & (s.shift(-1) == False))\
                       | ((s.shift(2) == True) & (s.shift(1) == False)))
# numpy.where to create the new output
np.where(mask, True, s)

# array([False,  True, False,  True,  True,  True, False, False])

# assign to a new column in the frame (if you want)
# df['new_col'] = np.where(mask, True, s)

给TA打赏
共{{data.count}}人
人已打赏
未分类

用sh文件中的值替换字符串占位符

2022-9-8 7:42:21

未分类

如何在Sagemaker脚本模式下恢复训练工作?

2022-9-8 7:53:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索