这是df的一部分:
NUMBER MONEY
12345 20
12345 -20
123456 10
678910 7.6
123457 3
678910 -7.6
我要删除数字相同但钱相反的行。
理想的结果如下:
NUMBER MONEY
123456 10
123457 3
答案 0 :(得分:1)
如果一个组中只有2行,请使用:
// utility function that returns a promise that resolves after a delay
function delay(t) {
return new Promise(resolve => {
setTimeout(resolve, t);
});
}
for (let i = 0; i < 5; i++) {
/* On for 1 second */
rpio.write(12, rpio.HIGH);
socket.emit('data','high')
await delay(1000);
/* Off for half a second (500ms) */
rpio.write(12, rpio.LOW);
socket.emit('data','low')
await delay(500);
}
df[df.groupby('NUMBER').MONEY.transform('sum').ne(0)]
答案 1 :(得分:1)
尝试一下
>>> df[~df.assign(MONEY=df.MONEY.abs()).duplicated(keep=False)]
输出:
NUMBER MONEY
2 123456 10.0
4 123457 3.0
来自评论(通过@piRSquared):
通过使用assign,新列已添加到df
,随后的drop_duplicates
同时考虑了NUMBER
和MONEY
的绝对值
df[~df.assign(MONEY=df.MONEY.abs()).duplicated(keep=False)]