问题
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