91977


いつもお世話になっております。  
Pandas.DataFrameで `display(df)` などでデータを見た時に  
次のようになっているデータがあります。

| id | before | after | date  
---|---|---|---|---  
1 | A | 10 | 20 | 2000/01  
2 | B | 30 | NaN | 2001/01  
3 | B | NaN | 40 | 2001/01  
4 | C | NaN | NaN | 2002/01  
  
これを下記のようにしたいのですが、どうすればいいでしょうか。

| id | before | after | date  
---|---|---|---|---  
1 | A | 10 | 20 | 2000/01  
2 | B | 30 | 40 | 2001/01  
3 | C | NaN | NaN | 2002/01  
  
  * 多分 `id` と `date` はペアになってる...はず
  * before/afterについて、片方がNaNの場合、一緒にまとめたい
  * `id=C` のように両方NaNだったり、片方のデータしか存在しないレコードもある


CC BY-SA 4.0
2022-11-03T03:32:20.200
91959
2022-11-04T00:30:44.607
2022-11-03T23:07:50.647
2904
2904
question
python pandas dataframe
PandasのDataFrameで歯抜けになってるデータの整合性を合わせたい


質問に記載されているデータフレームの場合には以下で充分ですが、実際に処理するデータフレームで期待する結果が得られるかどうかは、、、おそらく期待外れの結果になるかと思います。

[code]

    dfx = df.groupby(['id', 'date'], group_keys=False)\
            .apply(lambda x: x.bfill().ffill().drop_duplicates())\
            .reset_index(drop=True)
                   
    print(dfx)
    
[/code]

id | before | after | date  
---|---|---|---  
A | 10 | 20 | 2000/01  
B | 30 | 40 | 2001/01  
C | nan | nan | 2002/01


CC BY-SA 4.0
2022-11-04T00:30:44.607
91977
2022-11-04T00:30:44.607
47127
91959
answer