【发布时间】:2021-10-28 14:29:45
【问题描述】:
我有以下 DataFrame df,其中 user 和 status 已经按升序排序:
user count status
A 1 completed
A 2 not completed
B 1 not completed
B 2 completed
B 3 not completed
C 1 completed
C 2 not completed
C 3 completed
D 1 not completed
D 2 completed
D 3 not completed
D 4 completed
我需要分别标记两行,其中一个user 的状态not completed 后跟completed。因此,逻辑应该是这样的:
for each user:
set rows where "not completed" comes before "completed" == 1
set rows where "completed" comes after "not completed" == 1
这是想要的结果:
user count status selection
A 1 completed 0
A 2 not completed 0
B 1 not completed 1
B 2 completed 1
B 3 not completed 0
C 1 completed 0
C 2 not completed 1
C 3 completed 1
D 1 not completed 1
D 2 completed 1
D 3 not completed 1
D 4 completed 1
我更喜欢使用 iterrows() 或 itertuples() 的解决方案,但遇到了标记两行以及选择上一个/下一个索引的问题。很高兴看到这个问题的潜在解决方案。
【问题讨论】:
标签: python pandas dataframe loops iteration