如何在Python中增量更新DF

问题描述 投票:0回答:1

描述

  • 我有一个文件,其中包含原始数据和更新的报表。
  • 行original_id就像一个主键。
  • change_request_id 中没有值的行是初始数据条目。
  • change_request_id 中具有值的行是对初始数据条目的更新。
  • 行change_request_id引用行original_id并表示数据更改(更新)。仅需要更改的值才会被表示为 value,如果该字段为空则表示该值不会更改。

原文件

更改请求ID 原始_id a b c d
1 10 20 30 40
2 2500 600 700 800
1 3 12
2 4 700 800
1 5 30
6 16 17 19 20

所需输出:

更改请求ID 原始_id a b c d
1 12 30 30 40
2 500 700 800 800
6 16 17 19 20
python pandas dataframe
1个回答
0
投票

您可以替换original_id和

groupby.last

out = (df.assign(original_id=df['change_request_id'].fillna(df['original_id']))
         .groupby('original_id', as_index=False).last()
         .drop(columns='change_request_id')
      )

输出:

   original_id      a      b      c       d
0          1.0    12.0   30.0   30.0   40.0
1          2.0  2500.0  700.0  800.0  800.0
2          6.0    16.0   17.0   19.0   20.0
© www.soinside.com 2019 - 2024. All rights reserved.