python - 如何创建一个从 1 开始的 ID,每次另一列的前一行为特定值时增加 1
问题描述
我正在使用 Python,我需要创建一个 Journey ID 和一个 Journey 编号。参见图片说明。每次“目的”列的前一行取值 1 时,ID 都应增加。旅程编号的作用相同,但在每个受访者 ID 内。
GezPerVer2019['JourneyID'] = np.where(GezPerVer2019['Hoofddoel'] = 1, GezPerVer2019['JourneyID'][i+1] + 1, GezPerVer2019['JourneyID'][i-1])
是我试过的。显然,我对此还不太熟练,我认为问题在于 np.where 不允许使用 [i] 指示符。
任何帮助将不胜感激。
解决方案
在这里使用boolean indexing
andcumsum
代替:
m = df['Purpose'] == 1
df.loc[m, 'JourneyID'] = m.cumsum()
注意:=
用于分配,==
用于比较。与1
推荐阅读
- python - 使用 BeautifulSoup 进行抓取,其中键标记为 /strong,值是纯文本和/或标记
- reactjs - 将 React Photo Gallery 与图像文件一起使用,而不是来自 URL 的图像
- javascript - 如果一个函数被执行 5 次,则解决一个 Promise
- javascript - Bootstrap 冲突与自定义 CSS 过渡 - 如何查找 + 修复冲突的 CSS 规则?
- javascript - 有时 InvalidArgumentError: 'handle' 必须是字符串
- c# - 找不到记录时 SQL Server 显示结果
- python - 将包含字典的 pandas 列转换为多行
- python - pygame跳过更新屏幕
- c# - 休息 API 返回控制然后执行长时间运行的任务
- linux - 用另一个脚本停止一个 Linux 脚本