【发布时间】:2021-12-29 11:57:00
【问题描述】:
我有一个包含 [ID] [Number1] [Number2] 列的 csv 文件
现在我想检查 [Number1] 是否存在于 [Number2] 中,如果存在,我想将 [ID] 的值复制到新列 [ID2] 中。 我试过 np.where [Number1] == [Number2] 但这不是我想要的输出,因为这是逐行检查值。我希望脚本做的是检查 [Number1] 的值是否存在于整个 [Number2] 中。
有点像某种 for 循环,其中循环 [Number1] 的第 1 行,直到整个 [Number2] 列完成,然后它移动到下一行。这意味着如果 [Number1] 的第 1 行是 50131,而 [Number2] 的第 5555 行是 50131,那么我希望将第 1 行的 [ID] 作为 [ID2] 复制到第 5555 行。
如果该值不存在,我想在行中打印“No Match”字符串。
输入:
| ID | Number1 | Number2 |
|---|---|---|
| 9991 | 123 | 678 |
| 9992 | 321 | 321 |
| 9993 | 543 | 123 |
| 9994 | 678 | 543 |
| 9995 | 921 | 001 |
预期结果:(比较 Number1 和 Number2 时)
| ID | Number1 | Number2 | ID2 |
|---|---|---|---|
| 9991 | 123 | 678 | 9994 |
| 9992 | 321 | 321 | 9992 |
| 9993 | 543 | 123 | 9991 |
| 9994 | 678 | 543 | 9993 |
| 9995 | 921 | 001 | 'NO MATCH' |
【问题讨论】:
标签: python pandas numpy conditional-statements