ffill not filling data in pandas dataframe

萝らか妹 提交于 2021-02-10 16:55:32

问题


I have a dataframe like this :

  A  B  C  E D
---------------
0 a  r  g    g
1            x
2 x  f  f    r
3            t
3            y

I am trying for forward filling using ffill. It is not working

 cols = df.columns[:4].tolist()
 df[cols] = df[cols].ffill()

I also tried :

df[cols] = df[cols].fillna(method='ffill')

But it is not getting filled. Is it the empty columns in data causing this issue?

Data is mocked. Exact data is different (contains strings,numbers and empty columns)

desired o/p:

  A  B  C  E D
---------------
0 a  r  g    g
1 a  r  g    x
2 x  f  f    r
3 x  f  f    t
3 x  f  f    y

回答1:


Replace empty values in subset of columns by NaN:

df[cols] = df[cols].replace('', np.nan).ffill()



回答2:


You should replace the empty strings with np.NaN before:

df = df.replace('', np.NaN)
df[cols] = df[cols].ffill()



回答3:


Replace '' with np.nan first:

df[df='']=np.nan
df[cols] = df[cols].ffill()


来源:https://stackoverflow.com/questions/51278897/ffill-not-filling-data-in-pandas-dataframe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!