我想使用 bfill 和 groupby,但還沒有想出一種不刪除分組變量的方法。我知道我可以直接連接 ID 列,但必須有另一種方法來執行此操作。import pandas as pdimport numpy as nptest = pd.DataFrame({'ID': ['A', 'A', 'A', 'B', 'B', 'B'], 'dd': [0, 0, 0, 0, 0, 0], 'nu': np.array([0, 1, np.NaN, np.NaN, 10, 20])})In [11]:test.groupby('ID').bfill()Out[11]: nu0 0.01 1.02 NaN3 10.04 10.05 20.0期望的輸出 ID dd nu0 A 0 0.01 A 0 1.02 A 0 NaN3 B 0 10.04 B 0 10.05 B 0 20.0
1 回答

繁華開滿天機
TA貢獻1816條經驗 獲得超4個贊
嘗試df.assign
:
>>> test.assign(nu=test.groupby('ID').bfill()['nu'])
? ID? dd? ? nu
0? A? ?0? ?0.0
1? A? ?0? ?1.0
2? A? ?0? ?NaN
3? B? ?0? 10.0
4? B? ?0? 10.0
5? B? ?0? 20.0
或者df.groupby.apply
,
>>> test.groupby('ID').apply(lambda x:x.bfill())
? ID? dd? ? nu
0? A? ?0? ?0.0
1? A? ?0? ?1.0
2? A? ?0? ?NaN
3? B? ?0? 10.0
4? B? ?0? 10.0
5? B? ?0? 20.0
添加回答
舉報
0/150
提交
取消