python - 在熊猫数据框中水平移动布尔值
问题描述
假设我有一个布尔数据框,称为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)
解决方案
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
推荐阅读
- excel - 不可能的 Excel-VBA 电子邮件循环
- java - 在使用 Maven 编译的胖 jar 中时出现 Apache POI ClasDefNotFoundException
- service-worker - 重试失败的动态导入?(SPA/PWA)
- javascript - 在对象数组中过滤数组
- javascript - 带类别的分组柱形图中的向下钻取
- c# - 如何将方法中显示的字符串调用到另一个类中?
- python - 从整个 DataFrame 中删除空格
- python - Tensorflow V2:在训练和验证期间获取目标和输出
- sitecore - 仅在体验编辑器中显示的 Sitecore 内容
- c# - 如何将类变量声明为常量