我的数据框看起来像
c1 c2 c3
1 2 A
1 3 B
1 5 NA
1 7 D
2 0 E
2 1 NA
2 2 B
2 4 A
2 6 B
我想为每个ID填充最后一栏。
c1 c2 c3
1 2 A
1 3 B
1 5 D
1 7 D
2 0 E
2 1 B
2 2 B
2 4 A
2 6 B
我试过了
df.groupby(['c1']).apply(lambda x:
x['c3'].fillna(method='bfill')).reset_index()
但是它缺少列c2。如何获得所需的格式。
最佳答案
只需将c3的值更改为填充的结果即可:
df['c3'] = df.groupby(['c1'])['c3'].bfill()
输出:
c1 c2 c3
0 1 2 A
1 1 3 B
2 1 5 D
3 1 7 D
4 2 0 E
5 2 1 B
6 2 2 B
7 2 4 A
8 2 6 B
关于python - 分组并返回所有列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54351674/