首页 > 解决方案 > 如何在熊猫中其他 2 个单元格相等的情况下向前填充 na?

问题描述

我有一些缺少发票编号的客户交易数据。如果两个客户 ID 在行中相等并且交易金额相等,我想用前面的行值填充缺少的发票编号。日期并不重要。

数据的示例如下:

 date  customer amount  invoice
01/13    A        10      1
02/13    B        20      2
03/13    B        20      NA
04/13    C        30      3
05/13    C        60      NA
06/13    D        50      4

我想要创造的是:

 date  customer amount  invoice
01/13    A        10      1
02/13    B        20      2
03/13    B        20      2
04/13    C        30      3
05/13    C        60      NA      - this NA remains because amount does not match
06/13    D        50      4

标签: pythonpandasmissing-data

解决方案


更新:感谢@David Erickson 的评论,添加一个特定的列来填充。

您可以使用groupbyffill

df['invoice'] = df.groupby(['customer', 'amount'])['invoice'].ffill()

推荐阅读