我有一个庞大的数据库,其中有一些预算转移,当查看总计时,它们会相互抵消。问题是,我似乎无法理解如何删除所有相互抵消的行。下面的数据框作为示例:
test = pd.DataFrame(data = [1050.77, 13.45, 6.26, -1050.77, 10027, 6.26, 13.45, 13.45, -13.45, -6.26, -16800, 16800], columns = ['Test'])
Test
0 1050.77
1 13.45
2 6.26
3 -1050.77
4 10027
5 6.26
6 13.45
7 13.45
8 -13.45
9 -6.26
10 -16800
11 16800
上面的总和是 10060.16
如您所见,以下数字相互抵消:
0 1050.77
3 -1050.77
1 13.45
8 -13.45
2 6.26
9 -6.26
10 -16800
11 16800
因此,期望的输出是:
Test
4 10027
5 6.26
6 13.45
7 13.45
当然,上面的总和是 10060.16。
我已经尝试了很多东西,但我无法让它工作。下面的代码是我所做的尝试之一,但它不起作用:
for idx1, i in enumerate(test['Test']):
for idx2, j in enumerate(test['Test']):
if (i + j == 0):
test.drop(index = idx1, inplace = True)
test.drop(index = idx2, inplace = True)
test
我可以删除取消另一个的号码,然后使用 dropna 消除空行,或者最好的结果是删除该号码具有“取消器”的整行
我不关心索引,它可以以任何方式更改。
目标是仅消除 + 和 - 数字的完美匹配。
编辑:我已经编辑了 DataFrame,所以它带有一些浮点数
任何有关如何编程的帮助将不胜感激。
达令说
相关分类