【发布时间】:2021-04-30 15:08:06
【问题描述】:
我有一个数据框要处理,我正在执行几项检查。
我正在检查“A”、“B”和“C”列下的重复值是否在 D 列下呈现相同的数字但符号相反。
| A | B | C | D | E |
|---|---|---|---|---|
| 1111 | AAA | 123 | 0.01 | comment to be replaced |
| 2222 | BBB | 456 | 5 | comment to be replaced |
| 3333 | CCC | 789 | 10 | don't do anything |
| 1111 | AAA | 123 | -0.01 | comment to be replaced |
| 2222 | BBB | 456 | -5 | comment to be replaced |
| 3333 | CCC | 789 | -9 | don't do anything |
请在下面查看我的代码。当我尝试替换“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!'
【问题讨论】:
-
A, B, C的每个唯一值是否可以多于/少于两行? -
感谢您的评论@ShubhamSharma。是的,如果有更多/更少的列,评论会有所不同。
-
请不要编辑问题以使现有答案无效。最好换一个新的。阅读this 和相关帖子,了解更多关于良好做法的信息
-
@DaniB 请考虑添加一个新问题并回滚您当前的编辑,因为您的最新编辑完全使现有答案无效。