我想使用 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
提交
取消