为了账号安全,请及时绑定邮箱和手机立即绑定

在熊猫数据框中水平移动布尔值

在熊猫数据框中水平移动布尔值

千巷猫影 2021-06-04 15:46:44
假设我有一个布尔值数据框,称为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


查看完整回答
反对 回复 2021-06-08
?
慕少森

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


查看完整回答
反对 回复 2021-06-08
  • 2 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号