ffill not retaining all columns

时间:2015-11-12 10:37:38

标签: python pandas dataframe

I have a df like this:

Key    Class
1      Green
1      NaN
1      NaN
2      Red
2      NaN
2      NaN

and I want to forward fill Class. Im using this code:

df=df.Class.fillna(method='ffill')

and this returns:

Green
Green
Green
Red
Red
Red

how can I retain the Key column while doing this?

1 个答案:

答案 0 :(得分:2)

df['class'] = df.Class.fillna(method='ffill')

in your code you're assigning the whole dataframe to be the result , so instead you need to assign only the class column

or another way is to do the following

In [126]:
df.ffill()
Out[126]:
    Key Class
0   1   Green
1   1   Green
2   1   Green
3   2   Red
4   2   Red
5   2   Red

you can set also the inplace parameter to be true if you don't want to create a new copy from your df

df.ffill(inplace=True)