从 Pandas Dataframe 中删除取消行

2024-04-08

我有一份发给客户的发票清单。然而,有时会发送一张错误的发票,随后又被取消。我的 Pandas Dataframe 看起来像这样,除了更大(约 300 万行)

index | customer | invoice_nr | amount | date
---------------------------------------------------
0     | 1        | 1          | 10     | 01-01-2016
1     | 1        | 1          | -10    | 01-01-2016
2     | 1        | 1          | 11     | 01-01-2016
3     | 1        | 2          | 10     | 02-01-2016
4     | 2        | 3          | 7      | 01-01-2016
5     | 2        | 4          | 12     | 02-01-2016
6     | 2        | 4          | 8      | 02-01-2016
7     | 2        | 4          | -12    | 02-01-2016
8     | 2        | 4          | 4      | 02-01-2016
...   | ...      | ...        | ...    | ...
...   | ...      | ...        | ...    | ...

现在,我想删除所有行customer, invoice_nr and date是相同的,但是amount具有相反的值。
发票更正始终在同一天进行,发票编号相同。发票号码与客户唯一绑定,并且始终对应于一笔交易(可以由多个部分组成,例如customer = 2, invoice_nr = 4)。发票更正仅发生在更改amount收费,或分裂amount在较小的组件中。因此,取消的值不会在相同的值上重复invoice_nr.

任何有关如何编程的帮助将不胜感激。


def remove_cancelled_transactions(df):
    trans_neg = df.amount < 0
    return df.loc[~(trans_neg | trans_neg.shift(-1))]

groups = [df.customer, df.invoice_nr, df.date, df.amount.abs()]
df.groupby(groups, as_index=False, group_keys=False) \
  .apply(remove_cancelled_transactions)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Pandas Dataframe 中删除取消行 的相关文章

随机推荐

  • 如何让我的 PUT_LINE 语句显示在 TOAD 中?

    此代码可以编译 但在 TOAD 中不会显示 hi wo 输出 CREATE OR REPLACE PROCEDURE AdelTest IS tmpVar NUMBER BEGIN DBMS OUTPUT ENABLE 100 in INT
  • 单击链接后,javascript何时停止在页面上运行?

    我有一个运行各种 javascript 代码的页面 包括调用setTimeout 如果用户单击链接导航到另一个页面 该页面上的 javascript 在什么时候停止运行 因此我的 setTimeout 调用的代码将不再被调用 例如 单击链接
  • 我如何使用 Android EffectFactory 类?

    我厌倦了开发带有图像处理的示例应用程序 在我的应用程序中我需要添加一些color effects Grayscale sepia 在我的位图上 我参考了开发人员文档Doc 1 http developer android com refer
  • react-native\react.gradle' 不存在

    我使用 React Native 创建了一个应用程序 并且正在尝试生成 apk 完成文档中的所有操作后http facebook github io react native docs signed apk android html con
  • 雅罗斯拉夫斯基的双主元快速排序算法

    我正在研究我发现的双枢轴快速排序here http aofa2013 lsi upc edu slides Nebel pdf 幻灯片第 20 页 比较 雅罗斯拉夫斯基平均需求 1 9 n ln n 经典快速排序需要 2 n ln n 比较
  • 多个 jQuery-UI 滑块的合计

    我正在尝试实现一个有 4 个 jQuery UI 滑块的页面 并且我想让所有 4 个滑块的总数永远不会超过 400 我不介意以哪种方式实现这一点 它可以从 0 开始 一旦您更改 1 个滑块 剩余的可用总数就会减少 或者将滑块设置为超过最大值
  • Dart 扩展了 Map 以便于延迟加载

    我正在尝试将数据从服务器延迟加载到地图中 出于这个原因 我想向 Map 添加功能 以便当键不存在时 会进行调用以获取值 我尝试的是这样的 class LazyMap extends Map use length for now When t
  • 保存大图像 - 光栅问题

    我已经问过如何保存大图像的问题 我认为我走在正确的轨道上 但我仍然需要一些建议 我有一个 12000 x 12000 的图像 我需要将其另存为 png 无法使用 BufferedImage 我已经被建议使用 RenderedImage 接口
  • 使 MediaController 显示而不隐藏

    我尝试使用 MediaController 来播放音乐 我希望 MediaController 出现 直到按下 后退 按钮 现在我尝试了下面的代码 MediaController mediaController new MediaContr
  • vim colorchem 显示不正确的颜色

    我刚刚抓住了 Ultimate Vim Distribution http vim spf13 com 它附带了一堆颜色方案 由于某种原因 在我的 vimrc 中设置颜色方案 例如 colorscheme 公司 会导致与颜色方案实际定义的颜
  • 为什么这个语句在 java 中不起作用 x ^= y ^= x ^= y;

    int x 1 int y 2 x y x y 我期望这些值被交换 但它给出 x 0 和 y 1 当我用C语言尝试时 它给出了正确的结果 您的陈述大致相当于此扩展形式 x x y y x x y 与 C 不同 在 Java 中 保证二元运算
  • 使用 ng-repeat 和过滤器时数组中对象的 $index

    我对 Angular 相当陌生 并且能够在某种程度上解决问题 但我似乎无法找到这个场景的答案 我有一系列对象 我正在从 firebase 中将其拉下来 我对对象使用 ng repeat 然后相应地显示数据 我试图将索引作为路由参数传递给 编
  • auto foo(...) ->decltype(this) 有一些解决方法吗?

    我有下一堂课 并尝试声明成员函数 该函数将返回指向该类型的指针 但下一个代码 template
  • Django Admin内联递归ManyToMany

    我有以下模型 其自身具有多对多关系 class Ticket models Model STATUS 0 Open 1 Closed status models SmallIntegerField default 0 choices STA
  • 将指针从基类型转换为子类型

    我正在为我的一个项目构建一个简单的游戏设计 我有以下课程 class Character public virtual void Display virtual void SetParameters char param class Non
  • 测量函数调用的 CPU 周期

    我正在寻找一种方法来测量线程上的函数调用所占用的 cpu 周期 伪代码示例 void HostFunction var startTick CurrentThread CurrentTick does not exist ChildFunc
  • 为什么我的 R 中的“Fizz Buzz”测试不起作用?

    我听说这是一个常见的面试问题 请问这里有什么想法 谢谢 for i in 1 100 if i 15 0 print fizzbuzz else if i 3 0 print fizz else if i 5 0 print buzz el
  • 当 Spark 主内存无法容纳文件时,Spark 如何读取大文件(PB)

    在这些情况下大文件会发生什么 1 Spark从NameNode获取数据的位置 Spark 是否会同时停止 因为根据 NameNode 的信息 数据大小太长 2 Spark按照datanode块大小对数据进行分区 但所有数据不能存储到主内存中
  • 选择带有 JavaScript 和/或 CSS 的 Shadow DOM?

    Chrome 似乎已被弃用 deep and gt gt gt and shadow https www chromestatus com features 6750456638341120 https www chromestatus c
  • 从 Pandas Dataframe 中删除取消行

    我有一份发给客户的发票清单 然而 有时会发送一张错误的发票 随后又被取消 我的 Pandas Dataframe 看起来像这样 除了更大 约 300 万行 index customer invoice nr amount date 0 1