【发布时间】:2022-11-22 01:43:02
【问题描述】:
我的数据有代表属于不同组的个人成员的行,具有个人 ID(“ID”)和组 ID(“GROUP_NUM”)。
我正在尝试编写一个函数,对于每个组,循环遍历每个单独的 ID,并检查是否有任何列表(这个 ID 以前所在的组)出现在列表(组中的所有其他 ID 以前都在)中),如果是,则将该 ID 添加 1 到名为“HISTORY”的新列。
示例数据框:
| ID | GROUP_NUM |
|---|---|
| abc | 1 |
| def | 1 |
| ghi | 1 |
| jkl | 1 |
| abc | 2 |
| mno | 2 |
| pqr | 2 |
| stv | 2 |
| abc | 3 |
| stv | 3 |
| wxy | 3 |
| zzz | 3 |
| abc | 4 |
| def | 4 |
| pqr | 4 |
| bbb | 4 |
期望的结果:
| ID | GROUP_NUM | HISTORY |
|---|---|---|
| abc | 1 | 0 |
| def | 1 | 0 |
| ghi | 1 | 0 |
| jkl | 1 | 0 |
| abc | 2 | 1 |
| mno | 2 | 0 |
| pqr | 2 | 0 |
| def | 2 | 1 |
| abc | 3 | 1 |
| stv | 3 | 0 |
| wxy | 3 | 0 |
| mno | 3 | 1 |
| abc | 4 | 1 |
| def | 4 | 1 |
| pqr | 4 | 0 |
| stv | 4 | 1 |
我对函数/循环一窍不通,非常感谢您的帮助! :)
当 HISTORY 应该 = 1 时,我已经能够识别出个别示例,但我想对整个数据框执行此操作。该功能对我来说似乎很复杂,我无法理解它。
【问题讨论】: