假设我有一个布尔值数据框,称为original:original = pd.DataFrame([ [True, False, False, True, False], [False, True, False, False, False]]) 0 1 2 3 40 True False False True False1 False True False False False我想创建以下布尔数据框(True 右侧的所有数据现在都应为 True): 0 1 2 3 40 False True True True True1 False False True True True我已按如下方式完成此操作,但想知道是否有人有一个不那么麻烦的方法:original.shift(axis=1).fillna(False).astype(int) \ .T.replace(to_replace=0, method='ffill').T.astype(bool)
2 回答

守着星空守着你
TA贡献1799条经验 获得超8个赞
cummax
original.cummax(1).shift(axis=1).fillna(False)
0 1 2 3 4
0 False True True True True
1 False False True True True

慕少森
TA贡献2019条经验 获得超9个赞
国际大学联盟
original[original].shift(1,axis=1).ffill(1).fillna(0).astype(bool)
Out[77]:
0 1 2 3 4
0 False True True True True
1 False False True True True
添加回答
举报
0/150
提交
取消