如何在不删除分组变量的情况下将 .bfill() 与 pandas groupby 一起使用

我想使用 bfill 和 groupby,但还没有想出一种不删除分组变量的方法。我知道我可以直接连接 ID 列,但必须有另一种方法来执行此操作。


import pandas as pd

import numpy as np



test = 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]: 

     nu

0   0.0

1   1.0

2   NaN

3  10.0

4  10.0

5  20.0

期望的输出


  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


MYYA
浏览 92回答 1
1回答

繁华开满天机

尝试df.assign:>>> test.assign(nu=test.groupby('ID').bfill()['nu'])  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或者df.groupby.apply,>>> test.groupby('ID').apply(lambda x:x.bfill())  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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python