猿问

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

假设我有一个布尔值数据框,称为original:


original = pd.DataFrame([

    [True, False, False, True, False],

    [False, True, False, False, False]

])


  0     1     2     3     4

0 True  False False True  False

1 False True  False False False

我想创建以下布尔数据框(True 右侧的所有数据现在都应为 True):


  0     1     2     3     4

0 False True  True  True  True

1 False False True  True  True

我已按如下方式完成此操作,但想知道是否有人有一个不那么麻烦的方法:


original.shift(axis=1).fillna(False).astype(int) \

    .T.replace(to_replace=0, method='ffill').T.astype(bool)


千巷猫影
浏览 137回答 2
2回答

守着星空守着你

cummaxoriginal.cummax(1).shift(axis=1).fillna(False)       0      1     2     3     40  False   True  True  True  True1  False  False  True  True  True

慕少森

国际大学联盟original[original].shift(1,axis=1).ffill(1).fillna(0).astype(bool)Out[77]:        0      1     2     3     40  False   True  True  True  True1  False  False  True  True  True
随时随地看视频慕课网APP

相关分类

Python
我要回答