【问题标题】:How to create an ID that increases by 1 every time the previous row of another column is 1如何创建每另一列的前一行为1时增加1的ID
【发布时间】:2020-04-15 12:12:56
【问题描述】:

使用 Python,我需要创建两个新变量。

一个(参见示例中的 JourneyID),每次另一列的前一行取值“1”时累积增加一个,并且

一个(参见示例中的 JourneyN),每次另一列的前一行取值“1”时累积增加 1,但每次响应者 ID 增加 1 时从 1 开始。

m = df['Purpose'] == 1
df.loc[m, 'JourneyID'] = m.cumsum()

在应该返回 [1,1,2,2,3,3,3,4,4 时返回 df[JourneyID] = [1,1,1,2,1,1,3,1,4] ] 为 ID。

非常感谢任何帮助。

【问题讨论】:

  • 这可能是您知道如何回答的问题,@yatu。我纠正了这个令人困惑的例子。

标签: python pandas primary-key calculated-columns data-handling


【解决方案1】:

它不是超级干净,但应该可以满足您的需求:

helper = ((df['Purpose']==1).cumsum()+1).shift(1)
helper[0]=1
df['JourneyID'] =  helper

JourneyN 我没完全明白 :)

【讨论】:

  • 不幸的是,此解决方案与我遇到的问题相同。我希望看看我制作的表格,可以了解它应该是什么样子。
猜你喜欢
  • 1970-01-01
  • 2022-09-26
  • 1970-01-01
  • 1970-01-01
  • 2018-05-09
  • 2016-09-26
  • 2019-10-21
  • 2021-10-23
  • 2022-11-29
相关资源
最近更新 更多