我的目标是以下输出。
| 一种 | 乙 | C | D | 乙 | F |
|---|---|---|---|---|---|
| 0000 | ZZZ | 987 | QW1 | 8 | 前三四列和偏移量 |
| 0000 | ZZZ | 987 | QW1 | -8 | 前三四列和偏移量 |
| 0000 | ZZZ | 987 | QW1 | -8 | 第一次或不匹配 |
| 1111 | AAA | 123 | AB1 | 1 | 前三四列和偏移量 |
| 1111 | AAA | 123 | CD1 | -1 | 前三四列和偏移量 |
| 2222 | BBB | 456 | EF1 | -4 | 前三四列和偏移量 |
| 2222 | BBB | 456 | GH1 | -1 | 前三四列和偏移量 |
| 2222 | BBB | 456 | IL1 | 5 | 前三四列和偏移量 |
| 3333 | CCC | 789 | MN1 | 2 | 前两个 col 和 offset |
| 3333 | CCC | 101 | MN1 | -2 | 前两个 col 和 offset |
| 4444 | 直拨电话 | 121 | UYT | 6 | 前两个 col … |
我有一个数据框要处理,我正在执行多项检查。
我正在检查“A”、“B”和“C”列下的重复值是否显示相同的数字,但在 D 列下具有相反的符号。
| 一种 | 乙 | C | D | 乙 |
|---|---|---|---|---|
| 1111 | AAA | 123 | 0.01 | 评论被替换 |
| 2222 | BBB | 456 | 5 | 评论被替换 |
| 3333 | CCC | 789 | 10 | 什么都不做 |
| 1111 | AAA | 123 | -0.01 | 评论被替换 |
| 2222 | BBB | 456 | -5 | 评论被替换 |
| 3333 | CCC | 789 | -9 | 什么都不做 |
请在下面查看我的代码。当我尝试替换“E”列下的注释时,它不起作用。我确定我做错了什么。我完全意识到我没有以最有效的方式编写代码,我仍然是一个新手。您能否以更有效的方式帮助我实现这一目标,并且出于好奇,如果我决定继续使用这种“非高效”方式,如何实现这一目标?
谢谢你。
for i in range(0, len(df)-1):
for j in range(i+1, len(df)):
if (df['A'][i] == df['A'][j]) & (df['B'][i] == df['B'][j]) & (df['C'][i] == df['C'][j]) & (df['D'][i] + df['D'][j] = 0) :
df['E'][i] = 'it works!'
Run Code Online (Sandbox Code Playgroud)