分组并返回所有列

时间:2019-01-24 16:51:20

标签: python python-3.x pandas dataframe

我的数据框看起来像

  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。如何获得所需的格式。

1 个答案:

答案 0 :(得分:2)

只需将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