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

2024-09-17 18:19:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用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

1条回答
网友
1楼 · 发布于 2024-09-17 18:19:36

试试^{}

>>> 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

^{}

>>> 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

相关问题 更多 >